我需要从右键菜单中删除一些项目,但是工具栏不包含访问'toolbarView'的公共API。
是否可以自定义菜单而不使用私有API?
您可以在工具栏创建时访问和修改工具栏上下文菜单,即在-[awakeFromNib]
:
- (NSMenu *)toolbarMenuInWindow:(NSWindow *)window
{
NSView *contentView = window.contentView;
NSView *toolbarView = contentView.superview.subviews.lastObject;
NSMenu *toolbarMenu = toolbarView.menu;
return toolbarMenu;
}
现在你可以直接编辑菜单项,隐藏或禁用它们