cocoa nstoolbar

cocoa - Resalte NSToolbarItems



(3)

Quiero resaltar el NSToolbarItem seleccionado como, por ejemplo, en Adium (ver captura de pantalla).

resalte http://a2.s3.p.quickshareit.com/files/screenshot_b28b67ba9411513d6.png

hay una manera fácil? Si no, dime el difícil. =)



Para ampliar la respuesta de Chuck, simplemente necesita hacer que su controlador sea el delegado de su NSToolBar e implementar la barra de herramientasSelectableItemIdentifiers: delegar el método en ella. Por ejemplo, la siguiente implementación le permitirá retener el resaltado de selección en cada elemento de la barra de herramientas, excepto el marcado "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]; }

Guardo en caché la matriz allIdentifiers en una variable de instancia cuando hago algo como esto, de modo que solo tengo que hacer la construcción de la matriz una vez.


Si creó su barra de herramientas en Interface Builder, puede hacer clic en los elementos NSToolbarItems individuales y marcar la casilla Seleccionable en el Inspector para los que desee que se vean. Sin código necesario.