突出显示NSToolbarItem

时间:2009-02-19 19:31:05

标签: cocoa nstoolbar

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

highlight http://a2.s3.p.quickshareit.com/files/screenshot_b28b67ba9411513d6.png

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

3 个答案:

答案 0 :(得分: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];
}

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

答案 1 :(得分:8)

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

答案 2 :(得分:5)

请参阅Cocoa文档中的Selectable Toolbar Items