突出显示NSToolbarItems

pap*_*apr 7 cocoa nstoolbar

我想突出显示所选内容NSToolbarItem,例如Adium(见截图).

重点介绍http://a2.s3.p.quickshareit.com/files/screenshot_b28b67ba9411513d6.png

有一个简单的方法吗?如果没有,告诉我困难的一个.=)

Bra*_*son 14

要扩展Chuck的答案,您只需要将控制器作为NSToolBar的委托,并在其中实现toolbarSelectableItemIdentifiers:委托方法.例如,以下实现将允许您保留每个工具栏项目上的选择突出显示,但标记为"Inspect"的项目除外:

- (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];
}
Run Code Online (Sandbox Code Playgroud)

当我做这样的事情时,我将allIdentifiers数组缓存在一个实例变量中,这样我只需要进行一次数组构造.

  • 实际上你需要将所有工具栏项连接到一个动作,以便它们变为"启用" (2认同)

sam*_*sam 8

如果在Interface Builder中创建了工具栏,则可以单击各个NSToolbarItems并选中Inspector中的Selectable框,以查看要查看的那些框.无需代码.


Chu*_*uck 5

请参阅Cocoa文档中的可选工具栏项.