如何在NSComboBox的弹出菜单中为文本着色?

时间:2009-05-23 08:45:20

标签: cocoa user-controls user-interface

我正在使用NSComboBox并希望标记弹出列表中的某些项目显示为红色。 我在NSComboBoxCell中找不到适当的覆盖方法。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您需要直接修改弹出按钮的菜单项,但这并不是很难。您甚至不需要子类,您可以从控制器中完成所有操作。

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

您可能希望从现有的属性字符串标题中复制属性,以便字体和大小保持不变,但这应该可以让您入门。

答案 1 :(得分:0)

如何使用NSCell的{​​{1}}方法?只需创建一个-setAttributedStringValue:,其中包含您要为NSAttributedString键设置的颜色,您就应该好了。