Pour développer la réponse de Chuck, vous devez simplement faire de votre contrôleur le délégué de votre NSToolBar et implémenter la méthode toolbarSelectableItemIdentifiers: delegate. Par exemple, la mise en œuvre suivante vous permettra de conserver le point culminant de sélection sur tous les éléments de la barre d'outils sauf celle intitulée « Vérifier »:
- (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];
}
mettre en cache le tableau allIdentifiers dans une variable d'instance quand je fais quelque chose comme ça, alors que je dois seulement faire la construction de tableau une fois.
Dans le constructeur d'interface pour Xcode 4, il y a maintenant une petite case à cocher lorsque vous cliquez sur un élément de la barre d'outils qui indique selectable, mais en vérifiant qu'il semble ne rien faire. des idées? – Tony
@Tony - J'ai essayé cela moi-même dans Interface Builder et cela a bien fonctionné pour mon application, même sans le code ci-dessus. Je ne sais pas pourquoi cela ne fonctionne pas dans votre cas. –
Il s'avère que vous devez raccorder tous les éléments de la barre d'outils à une action afin qu'ils deviennent activés – Tony