如何更改NSToolbarItem标签的颜色

时间:2012-03-06 15:36:32

标签: macos cocoa appkit nstoolbar nstoolbaritem

我想更改所有NSToolbarItem标签的颜色。

我需要将其设置为白色,因为它更适合我的NSWindow的背景颜色,但它默认为黑色,我还没有找到在Interface Builder中也不能直接通过代码更改它的方法(NSToolbarItem实现setLabel,但它只设置文本字符串。)

如果可能的话,我想避免:

  • 用自定义NSToolbar替换整个NSView。我觉得要为我重新发明轮子。
  • 必须在NSView内创建自定义NSToolbarItem。这意味着必须将所有标签留空并在自定义视图中添加白色标签。

3 个答案:

答案 0 :(得分:1)

如果有人有兴趣,我解决了:

  • NSToolbarItem内使用包含按钮和标签的自定义视图。
  • 仅在NSToolbar中显示图标而不是图标+标签,以隐藏默认标签。

我不得不处理与Interface Builder相关的另一个问题:自定义视图根本没有显示。由于this answer,我能够修复它。

答案 1 :(得分:0)

您可以使用NSMutableAttributeString进行更改。 例如:

-(void) awakeFromNib{
NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithString:self.label];
NSRange titleRange = NSMakeRange(0, title.length);
[title addAttribute:NSForegroundColorAttributeName value:[NSColor redColor] range:titleRange];
[self setLabel:title]; }

答案 2 :(得分:-2)

您必须继承NSBarButtonItem并为其覆盖drawRect方法。否则,它将使用[NSColor controlTextColor][NSColor disabledControlTextColor]