Highlight NSToolbarItems

2019-02-13 10:12发布

I want to highlight the selected NSToolbarItem like e.g. in Adium (see screenshot).

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

Is there an easy way? If not, tell me the difficult one. =)

3条回答
▲ chillily
2楼-- · 2019-02-13 10:43

If you made your toolbar in Interface Builder, you can click on the individual NSToolbarItems and check the Selectable box in the Inspector for the ones you want to have that look. No code needed.

查看更多
一夜七次
3楼-- · 2019-02-13 10:45

See Selectable Toolbar Items in the Cocoa documentation.

查看更多
走好不送
4楼-- · 2019-02-13 10:46

To expand upon Chuck's answer, you simply need to make your controller the delegate of your NSToolBar and implement the toolbarSelectableItemIdentifiers: delegate method in it. For example, the following implementation will let you retain the selection highlight on every toolbar item except for the one labeled "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];
}

I cache the allIdentifiers array in an instance variable when I do something like this, so that I only have to do the array construction once.

查看更多
登录 后发表回答