我想更改所有NSToolbarItem
标签的颜色。
我需要将其设置为白色,因为它更适合我的NSWindow
的背景颜色,但它默认为黑色,我还没有找到在Interface Builder中也不能直接通过代码更改它的方法(NSToolbarItem
实现setLabel
,但它只设置文本字符串。)
如果可能的话,我想避免:
NSToolbar
替换整个NSView
。我觉得要为我重新发明轮子。NSView
内创建自定义NSToolbarItem
。这意味着必须将所有标签留空并在自定义视图中添加白色标签。答案 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]
。