Как раскрасить текст во всплывающем меню NSComboBox? - PullRequest
1 голос
/ 23 мая 2009

Я использую NSComboBox и хочу отметить, что некоторые элементы во всплывающем списке отображаются красным. Я не смог найти правильный метод для переопределения в NSComboBoxCell. Есть идеи?

Ответы [ 2 ]

1 голос
/ 23 мая 2009

Вам нужно будет напрямую изменить пункты меню всплывающей кнопки, но это не очень сложно. Вам даже не нужно создавать подклассы, вы можете делать все это из контроллера.

NSMenu *menu = [popUpButton menu];
NSMenuItem *item = [menu itemWithTag:100];
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor redColor], NSForegroundColorAttributeName, nil];
NSAttributedString *string = [[NSAttributedString alloc] initWithString:[item title] attributes:attributes];

[item setAttributedTitle:string];

Возможно, вы захотите скопировать атрибуты из существующего атрибутного заголовка строки, чтобы шрифт и размер остались прежними, но с этого следует начать.

0 голосов
/ 23 мая 2009

Как насчет использования NSCell -setAttributedStringValue: метода? Просто создайте NSAttributedString, у которого есть цвет, который вы хотите установить для клавиши NSForegroundColorAttributeName, и все будет хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...