我想更改所有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]
。