2009-02-19 11 views

Répondre

13

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.

+1

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

+0

@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. –

+2

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

8

Si vous avez créé votre barre d'outils dans Interface Builder, vous pouvez cliquer sur les NSToolbarItems individuels et cocher la case Sélectionnable dans l'inspecteur pour ceux que vous souhaitez voir apparaître. Aucun code requis.

+0

Je l'ai intégré dans le constructeur de l'interface et j'ai coché la case à cocher sélectionnable, mais rien ne semble se produire. Y a-t-il autre chose à faire? – Tony

+0

Aucune idée, il semble être cassé dans la plupart des cas lors de la configuration dans IB je ne peux le faire fonctionner avec toolbarSelectableItemIdentifiers – valexa

Questions connexes