Я хочу выделить выбранные NSToolbarItem
, например, в Адиуме (см. скриншот).Выделите NSToolbarItems
highlight http://a2.s3.p.quickshareit.com/files/screenshot_b28b67ba9411513d6.png
Есть простой способ? Если нет, скажите мне трудную. =)
Я хочу выделить выбранные NSToolbarItem
, например, в Адиуме (см. скриншот).Выделите NSToolbarItems
highlight http://a2.s3.p.quickshareit.com/files/screenshot_b28b67ba9411513d6.png
Есть простой способ? Если нет, скажите мне трудную. =)
Чтобы расширить ответ на вопрос Чак, вам просто нужно сделать свой контроллер делегатом вашего NSToolBar и реализовать панель инструментовSelectableItemIdentifiers: в нем делегировать метод. Например, следующая реализация позволит вам сохранить выделение выбора на любой элемент панели инструментов для одного меченого «Проверить», за исключением:
- (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 в переменной экземпляра, когда я делаю что-то вроде этого, так что мне нужно только сделать конструкцию массива один раз.
См. Selectable Toolbar Items в документации по какао.
Если вы создали свою панель инструментов в Interface Builder, вы можете щелкнуть по отдельным элементам NSToolbar и проверить поле Selectable в Inspector для тех, которые вы хотите получить. Не требуется код.
У меня он встроен в построитель интерфейсов и установлен флажок по выбору, но ничего не происходит. есть ли что-нибудь еще, что нужно сделать? – Tony
Понятия не имею, кажется, что в большинстве случаев он нарушается при установке в IB, я могу заставить его работать с toolbarSelectableItemIdentifiers – valexa
В интерфейсном построителе для Xcode 4 теперь есть небольшая галочка, когда вы нажимаете на элемент панели инструментов, который говорит по выбору, но проверка его, кажется, ничего не делает. есть идеи? – Tony
@Tony - просто попробовал это сам в Interface Builder, и он отлично работал для моего приложения, даже без вышеуказанного кода. Не уверен, почему это не работает в вашем случае. –
получается, что вам действительно нужно подключить все элементы панели инструментов к действию, чтобы они стали «включенными». – Tony