Per espandere la risposta di Chuck, è sufficiente configurare il controller come delegato di NSToolBar e implementare la barra degli strumentiSelectableItemIdentifiers: metodo delegate. Ad esempio, la seguente implementazione vi permetterà di mantenere l'evidenziazione di selezione su ogni articolo barra degli strumenti ad eccezione di quello con l'etichetta "Controllare":
- (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];
}
ho caché la matrice allIdentifiers in una variabile di istanza quando faccio qualcosa di simile, in modo da che devo fare solo una volta la costruzione dell'array.
fonte
2009-02-19 19:52:22
Nel builder di interfaccia per Xcode 4 ora c'è una piccola casella di controllo quando si fa clic su un elemento della barra degli strumenti che dice selezionabile, ma il controllo sembra non fare nulla. qualche idea? – Tony
@Tony - Ho appena provato questo in Interface Builder e ha funzionato bene per la mia applicazione, anche senza il codice precedente. Non sono sicuro del motivo per cui non funziona nel tuo caso. –
si scopre che in realtà è necessario collegare tutti gli elementi della barra degli strumenti a un'azione che diventa 'abilitata' – Tony