首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSPopUpButton箭头颜色

NSPopUpButton箭头颜色
EN

Stack Overflow用户
提问于 2012-06-02 03:00:30
回答 5查看 1.8K关注 0票数 5

有没有办法自定义NSPopUpButton箭头的颜色?我环顾了四周,但还没有找到答案

EN

回答 5

Stack Overflow用户

发布于 2012-06-02 03:14:12

我真的不认为有一个“简单”的方法来做到这一点。如果你看一下API描述,它甚至声明它不响应setImage例程。我已经做了相当多的工作,按钮对象的子类化,等等。我认为这是你必须去做的地方,以完成你所要求的。

票数 1
EN

Stack Overflow用户

发布于 2015-02-27 07:21:40

像许多这样的控件一样,我是通过继承NSPopupButton(单元格),然后在drawRect中绘制自己的图形来实现的……我有一点作弊,用一个图像来做实际的三角形,而不是试图通过基元来做。

代码语言:javascript
复制
- (void)drawRect:(NSRect)dirtyRect 
{
  //...Insert button draw code here...
  //Admittedly the above statement includes more work than we probably want to do.
  //Assumes triangleIcon is a cached NSImage...I also make assumptions about location

  CGFloat iconSize = 6.0;
  CGFloat iconYLoc = (dirtyRect.size.height - iconSize) / 2.0;
  CGFloat iconXLoc = (dirtyRect.size.width - (iconSize + 8));

  CGRect triRect = {iconXLoc, iconYLoc, iconSize, iconSize};
  [triangleIcon drawInRect:triRect];
}
票数 0
EN

Stack Overflow用户

发布于 2017-11-27 19:20:05

我这样做了,它对我很有效。

代码语言:javascript
复制
(void)drawImageWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
    NSPopUpButton *temp = (NSPopUpButton*)controlView;

    NSString *strtile = temp.title;

    AppDelegate *appdel = (AppDelegate*)[NSApplication sharedApplication].delegate;
    NSFont *font = [NSFont systemFontOfSize:13.5];
   NSSize size = NSMakeSize(40, 10);// string size

    CGRect rect = controlView.frame;
    rect = CGRectMake((size.width + temp.frame.size.width)/2, rect.origin.y, 8, 17);

    [self drawImage:[NSImage imageNamed:@"icon_downArrow_white.png"] withFrame:rect inView:self.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10855915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档