Чтобы расширить ответ Чака, вам просто нужно сделать свой контроллер делегатом вашего 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 в переменной экземпляра, когда делаю что-то подобное, так что мне нужно сделать построение массива только один раз.