我需要从右键单击上下文菜单中删除一些项目,但工具栏不包含用于访问“toolbarView”的公共(public) API。
是否可以在不使用私有(private) API 的情况下自定义菜单?
最佳答案
创建工具栏时,您可以访问和修改工具栏上下文菜单,即在 -[awakeFromNib]
中:
- (NSMenu *)toolbarMenuInWindow:(NSWindow *)window
{
NSView *contentView = window.contentView;
NSView *toolbarView = contentView.superview.subviews.lastObject;
NSMenu *toolbarMenu = toolbarView.menu;
return toolbarMenu;
}
现在您可以直接编辑菜单项并隐藏或禁用它们。
关于macos - 如何自定义NSToolbar的上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8413111/