如何更改 NSToolbarItem 标签的颜色



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

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

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

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

如果有人感兴趣,我通过以下方法解决了问题:

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

我不得不处理另一个与Interface Builder的错误有关的问题:自定义视图根本没有显示。多亏了这个答案,我才得以修复。

您可以使用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]; }

您必须将NSBarButtonItem子类化,并为此覆盖drawRect方法。否则将使用[NSColor controlTextColor][NSColor disabledControlTextColor]

最新更新