我正在尝试重新创建工具栏中的 Finder、Safari 和传输等漂亮的纹理按钮。首先,我只是在 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;
}
但这也有同样的效果:当我在“纯文本模式”中按下带有 NSButton 的 NSToolbarItem 时,工具栏本身会强制它的模式为“图标和文本”。
你知道我怎样才能让它正常工作,或者有一个替代方法来创建像 Safari 等漂亮的工具栏项吗?