Как изменить цвет метки NSToolbarItem - PullRequest
3 голосов
/ 06 марта 2012

Я хотел бы изменить цвет всех моих NSToolbarItem этикеток.

Мне нужно установить его на белый, потому что он лучше подходит под цвет фона моего NSWindow, нопо умолчанию он черный, и я не нашел способа изменить его ни в Интерфейсном Разработчике, ни непосредственно кодом (NSToolbarItem реализует setLabel, но он просто устанавливает текстовую строку).

Если возможно,Я бы хотел избежать:

  • Замена всего NSToolbar на пользовательский NSView.Мне бы хотелось заново изобретать колесо.
  • Необходимость создавать собственные NSView внутри NSToolbarItem.Это будет означать, что необходимо оставить пустыми все свои метки и добавить белую метку внутри пользовательского представления.

Ответы [ 3 ]

1 голос
/ 23 апреля 2012

На случай, если кому-то интересно, я решил это следующим образом:

  • Использование пользовательских представлений внутри NSToolbarItem s, содержащих как кнопку, так и метку.
  • Отображение только значка вместо значка + метка в NSToolbar, чтобы скрыть метку по умолчанию.

Мне пришлось столкнуться с другой проблемой, связанной с ошибкой в ​​Интерфейсном Разработчике: пользовательский вид вообще не отображался. Я смог исправить это благодаря этому ответу .

0 голосов
/ 11 мая 2016

Вы можете изменить его, используя 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]; }
0 голосов
/ 22 марта 2012

Вы должны создать подкласс NSBarButtonItem и переопределить метод drawRect для этого.В противном случае он будет использовать [NSColor controlTextColor] или [NSColor disabledControlTextColor].

...