How to customize the context menu of NSToolbar?

2019-02-20 19:02发布

I need to remove some items from right-click context menu, but the toolbar does not contain a public API to access 'toolbarView'.

Is it possible to customize the menu without using private API?

1条回答
我命由我不由天
2楼-- · 2019-02-20 19:49

You can access and modify a toolbar contextual menu when the toolbar is created, i.e. in -[awakeFromNib]:

- (NSMenu *)toolbarMenuInWindow:(NSWindow *)window
{
    NSView *contentView = window.contentView;
    NSView *toolbarView = contentView.superview.subviews.lastObject;
    NSMenu *toolbarMenu = toolbarView.menu;
    return toolbarMenu;
}

Now you can directly edit menu items and hide or disable them.

查看更多
登录 后发表回答