如何在OS X El Capitan上自定义NSToolbar上下文菜单?

时间:2015-10-08 10:00:10

标签: osx-elcapitan nstoolbar

有没有办法自定义右键单击工具栏(或包含它的窗口的标题栏)时弹出的上下文菜单? 几个Apple应用程序(XCode,Safari,Mail和其他人似乎能够删除或隐藏某些菜单项),但我找不到访问NSMenu的方法。

这是我到目前为止所尝试的内容:

  • 试图像以前的OS X版本那样进入菜单(如下所述:How to customize the context menu of NSToolbar?):返回的NSMenu为nil
  • 试图覆盖rightMouseDown:在NSWindow中包含工具栏:该方法未被调用
  • 试图覆盖menuForEvent:在窗口的内容视图中(我用自定义NSView替换了默认内容视图):该方法未被调用
  • 试图覆盖rightMouseDown:在窗口的内容视图中(我用自定义NSView替换了默认内容视图):该方法未被调用

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我实际上通过检查调试器中的内容并稍微修改来找到答案。在El Capitan,一个有效的解决方案是获取菜单:

NSView * theContentView = myWindow.contentView;
NSMenu * theCustomizeMenu = theContentView.superview.menu;