Estoy tratando de recrear los bonitos botones con textura como Finder, Safari y Transmission tienen en su barra de herramientas. Primero comencé simplemente arrastrando un "botón de Textura" en el IB y tal. Todo funciona bien, excepto cuando un usuario configura la barra de herramientas en el modo "Solo texto". Cuando haga clic en el botón, la barra de herramientas habilitará "Ícono y etiqueta" por sí mismo. He eliminado el código y los delegados de la barra de herramientas para asegurarme de que no sea un problema de código.NSButton en NSToolbarItem (setView) cuando se hace clic en "Solo texto" fuerza el modo a "Icono y etiqueta"
Luego, solo para asegurarme, creé un nuevo proyecto (sin ningún código) y puedo reproducir el problema con una ventana NSW limpia con una barra NSToolbar con un NSToolbarItem con un NSButton.
Adición de los NSButtons a través de un código como:
- (NSArray*)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar {
return [NSArray arrayWithObject:@"myToolbarMenu"];
}
- (NSArray*)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar {
return [self toolbarAllowedItemIdentifiers:toolbar];
}
- (NSToolbarItem*)toolbar:(NSToolbar*)toolbar
itemForItemIdentifier:(NSString*)str
willBeInsertedIntoToolbar:(BOOL)flag
{
if ([str isEqualToString:@"myToolbarItem"] == YES) {
NSToolbarItem* item = [[NSToolbarItem alloc] initWithItemIdentifier:str];
[item setView:[[NSButton alloc] init]];
[item setMinSize:NSMakeSize(50,50)];
[item setMaxSize:NSMakeSize(50,50)];
[item setLabel:@"Text"];
return [item autorelease];
}
return nil;
}
Pero esto también tiene el mismo efecto: cuando se presiona un NSToolbarItem con un NSButton en ella en "Texto único modo" de la barra de herramientas se impone es el modo de " Icono y texto ".
¿Tiene alguna idea de cómo puedo hacer que funcione correctamente o tal vez tener una alternativa para crear las bonitas barras de herramientas de herramientas como Safari, etc.?
Perdón por la respuesta lenta. Gracias por la respuesta, definitivamente lo comprobaré lo antes posible. Gracias por la respuesta. –