我正在Swift中编写一个简单的状态栏应用程序,并尝试使用OS X 10.10中引入的新NSStatusItem API.
我瞄准的界面是在statusItem上单击鼠标左键以打开和关闭核心功能,用鼠标右键单击(或按住Control键单击)选项以显示设置菜单.我不需要自定义视图或弹出窗口来实现此功能.
默认情况下,如果NSMenu被分配给NSStatusItem,它将在左右键单击上显示菜单.我想将行为更改为仅在右键单击时显示菜单,或者作为解决方法,防止左键单击时弹出菜单
以前,似乎要在NSStatusItem上控制鼠标事件,必须使用重写的鼠标事件设置自定义视图(请参阅此相关问题).
在10.10中引入的新NSStatusItem API中,不推荐使用设置自定义视图的方法,并且看起来不鼓励这种行为.根据@Taylor的回答,应该通过statusItemObject.button()返回的NSStatusBarButton对象使用一些不赞成的行为,但是在编写时没有NSStatusBarButton的文档,并且返回的对象是只读的,不能被替换使用带有重写鼠标事件处理程序的自定义按钮.
有没有办法对鼠标事件显示附加到NSStatusItem(或NSStatusBarButton)的NSMenu进行某种程度的控制?