Я пытаюсь воссоздать приятные текстурированные кнопки, такие как Finder, Safari и Transmission, на их панели инструментов.Сначала я просто перетащил «кнопку текстуры» в IB и все такое.Все работает хорошо, за исключением случаев, когда пользователь переводит панель инструментов в режим «Только текст».Когда он затем нажимает кнопку, панель инструментов включит «Значок и метку» самостоятельно.Я удалил все коды и делегаты с панели инструментов, чтобы убедиться, что это не проблема с кодом.
Затем, просто чтобы убедиться, что я создал новый проект (без кода вообще), и я могу воспроизвести проблемус чистым NSWindow с NSToolbar с одним NSToolbarItem с NSButton в нем.
Добавление NSButtons с помощью кода, подобного:
- (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;
}
Но это также имеет тот же эффект: когда я нажимаюNSToolbarItem с NSButton в нем в «текстовом режиме». Сама панель инструментов переводит режим в «Значок и текст».
У вас есть идеи, как я могу заставить его работать правильно или, возможно, у вас есть альтернатива созданиюкрасивые панели инструментов, такие как Safari и т. д. есть?