我的工具栏有以下菜单:
有什么简单的方法可以从此菜单中排除“仅文本”?
我知道它是NSToolbarDisplayModeLabelOnly,但是没有找到说不使用它的地方。
最佳答案
我的团队找到了解决方案。
NSToolBar的简单类别。
并且此类别可用于将自定义项目添加到菜单。
NSToolbar + ContextMenu.h
#import <Cocoa/Cocoa.h>
@interface NSToolbar (ContextMenu)
- (void) disableTextOnlyMode;
@end
NSToolbar + ContextMenu.m
#import <AppKit/NSToolbar.h>
#import "NSToolbar+ContextMenu.h"
@implementation NSToolbar (ContextMenu)
- (NSView*) __toolbarView {
return (NSView*)[self valueForKey:@"_toolbarView"];
}
- (void) disableTextOnlyMode {
NSView *toolbarView = [self __toolbarView];
NSMenu *toolbarMenu = toolbarView.menu;
for (NSMenuItem *item in [toolbarMenu.itemArray objectEnumerator]) {
if (item.action == @selector(changeToolbarDisplayMode:) && item.tag == 3) {
[toolbarMenu removeItem:item];
break;
}
}
}
@end
关于objective-c - NSToolbar如何不允许“纯文本”模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24391785/