Cocoa 突出显示NSToolbarItems

Cocoa 突出显示NSToolbarItems,cocoa,nstoolbar,Cocoa,Nstoolbar,我想突出显示所选的NSToolbarItem,例如在Adium中(参见屏幕截图) 有简单的方法吗?如果没有,请告诉我最难的一个 请参阅Cocoa文档。要扩展Chuck的答案,只需将控制器设置为NSToolBar的委托,并在其中实现Toolbar SelectableItemIdentifiers:delegate方法。例如,以下实现将允许您在每个工具栏项目(标记为“检查”的项目除外)上保留选择突出显示: 当我执行类似操作时,我将allIdentifiers数组缓存在实例变量中,这样我只需执行一

我想突出显示所选的
NSToolbarItem
,例如在Adium中(参见屏幕截图)


有简单的方法吗?如果没有,请告诉我最难的一个

请参阅Cocoa文档。

要扩展Chuck的答案,只需将控制器设置为NSToolBar的委托,并在其中实现Toolbar SelectableItemIdentifiers:delegate方法。例如,以下实现将允许您在每个工具栏项目(标记为“检查”的项目除外)上保留选择突出显示:


当我执行类似操作时,我将allIdentifiers数组缓存在实例变量中,这样我只需执行一次数组构造。

如果您在Interface Builder中创建了工具栏,您可以单击各个NSToolBarItem,并选中Inspector中的可选框,以获得您想要的外观。无需任何代码。

在Xcode 4的interface builder中,当您单击显示为可选的工具栏项目时,会出现一个小复选框,但选中它似乎没有任何作用。有什么想法吗?@Tony-我自己刚在Interface Builder中试用过,它对我的应用程序运行良好,即使没有上面的代码。不确定为什么它在您的情况下不起作用。事实证明,您实际上需要将所有工具栏项连接到一个操作,以便它们变为“已启用”。在我的情况下,NSWindows仅显示工具栏选项的可选复选框,而NSPanel不显示,并且需要上述代码(谢谢!).我在interface builder中内置了它,并选中了“可选择”复选框,但似乎什么也没发生。还有什么需要做的吗?不知道,在大多数情况下,当在IB中设置它时,它似乎被破坏了。我只能让它与Toolbar SelectableItemIdentifiers一起工作
- (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar
{
    NSMutableArray *allIdentifiers = [[NSMutableArray alloc] init];

    for (NSToolbarItem *toolbarItem in [toolbar items])
    {
        if (![[toolbarItem label] isEqualToString:@"Inspect"])
            [allIdentifiers addObject:[toolbarItem itemIdentifier]];
    }

    return [allIdentifiers autorelease];
}