Para ampliar la respuesta de Chuck, simplemente necesita convertir su controlador en el delegado de su NSToolBar e implementar la barra de herramientasSelectableItemIdentifiers: delegar el método en ella. Por ejemplo, la siguiente aplicación le permitirá conservar la selección elegida en cada artículo barra de herramientas a excepción de la de la etiqueta "Inspeccionar":
- (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];
}
cacheamos la matriz allIdentifiers en una variable de instancia cuando hago algo así, tan que solo tengo que hacer la construcción del arreglo una vez.
En el generador de interfaces para Xcode 4 ahora hay una pequeña casilla de verificación al hacer clic en un elemento de la barra de herramientas que dice seleccionable, pero al verificarlo parece que no hace nada. ¿algunas ideas? – Tony
@Tony - Acabo de probar esto en Interface Builder y funcionó bien para mi aplicación, incluso sin el código anterior. No estoy seguro de por qué no funciona en su caso. –
Resulta que realmente necesita conectar todos los elementos de la barra de herramientas a una acción para que se 'activen' – Tony