2012-03-06 36 views
3

的顏色,我想改變這一切我NSToolbarItem的標籤的顏色。如何更改NSToolbarItem的標籤

我需要,因爲它更適合我NSWindow的背景顏色將其設置爲白色,但它默認爲黑色,我還沒有找到一種方法來改變它既不在Interface Builder也沒有直接的代碼(NSToolbarItem工具setLabel,但它只是設置文本字符串)。

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

  • 通過自定義NSView更換整個NSToolbar。會覺得重新發明輪子給我。
  • 有內線NSToolbarItem創建自定義NSView秒。這意味着必須保留空白的所有標籤,並在自定義視圖中添加白色標籤。

回答

1

如果有人有興趣,我解決它通過:

  • 使用內部含有一個按鈕和一個標籤NSToolbarItem的定製視圖。
  • 僅在NSToolbar中顯示圖標而不是圖標+標籤以隱藏默認標籤。

我不得不處理另一個與Interface Builder有關的問題:自定義視圖根本沒有顯示。我能夠修復它,這要歸功於this answer

-2

你必須繼承NSBarButtonItem並重寫drawRect方法。否則它將使用[NSColor controlTextColor][NSColor disabledControlTextColor]

+0

開始嘗試你建議的和NSBarButtonItem類不存在於AppKit中。此外,我要求NSToolbarItem,它從NSObject繼承,所以沒有drawRect方法。 – msoler 2012-04-20 15:09:13

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]; }