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. =)
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.