如何在Xcode和Interface Builder中的菜单中添加右键单击选项?

问题描述

| 我正在尝试创建一个菜单项,该菜单项在左键单击和右键单击(以及将来的组合,如按Control键单击,按Option键单击或按Command键单击)时会有所不同。 现在,我有一个附加了statusMenu的menulet,可在左击和右键单击时打开。 status菜单中有五个选项:一个执行项,三个首选项设置项和一个退出项。 我想在某种程度上区分行为,因为小菜单被设计为一个小技巧。左键单击应执行该功能,右键单击应完全按原样打开菜单包括执行)。 任何想法如何做到这一点? 现在,我像过去的statusMenus一样,从代码调用statusMenu
[statusItem setMenu:statusMenu];
    

解决方法

        为此,您将需要手动显示菜单。一种方法是创建一个自定义视图,并将其放在状态项中,然后使用
mouseUp:
rightMouseUp:
事件处理程序执行操作。您还可以从事件中获取修饰键,以执行其他操作。也可以使用状态项的内置目标动作机制,并从NSEvent类方法
+pressedMouseButtons
+modifierFlags
获取信息。无论哪种方式,您都可以使用NSStatusItem的
-popUpStatusItemMenu:
方法显示菜单。 有关使用自定义视图处理左右点击的示例,请参见我对这个问题的回答。