2012-03-06 19 views
3

NSToolbarItemのラベルの色を変更したいと思います。NSToolbarItemのラベルの色を変更する方法

私はNSToolbarItem実装(黒とIデフォルトはInterface Builderでも直接コードでもない、それを変更する方法を発見していない、それは私のNSWindowの背景色に良く合っているため白に設定する必要がありますが、それsetLabelですが、文字列を設定するだけです)。

可能ならば、私は避けたいのですが:

  • は、カスタムNSViewによって全体NSToolbarを交換します。私に車輪を再発明するような気がします。
  • カスタムNSViewNSToolbarItemの内側に作成する必要があります。それは、すべてのラベルを空白のままにして、カスタム・ビュー内に白色のラベルを追加する必要があることを意味します。

答えて

1

誰もが興味を持っている場合は、私はでそれを解決:ボタンとラベルの両方を含むNSToolbarItemの内部のカスタムビューを使用して

  • デフォルトラベルを非表示にするため、アイコン+ラベルの代わりにアイコンのみを表示します(NSToolbar)。

私はInterface Builderのバグに関する別の問題に取り組んでいました。カスタムビューはまったく表示されませんでした。私はthis answerのおかげで修正できました。

-2

NSBarButtonItemをサブクラス化し、そのためのdrawRectメソッドをオーバーライドする必要があります。それ以外の場合は[NSColor controlTextColor]または[NSColor disabledControlTextColor]が使用されます。

+0

はあなたが提案し何をしようとして開始し、NSBarButtonItemクラスがのAppKitには存在しません。また、NSObjectから継承するNSToolbarItemを求めていたので、drawRectメソッドはありません。 – msoler

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]; } 
関連する問題