2011-06-11 54 views
4

我想要一个左键单击和右键单击(也许组合在将来像控制单击,选项单击或命令单击)行为不同的菜单。如何在Xcode和Interface Builder中的菜单栏中添加右键单击选项?

现在我有一个菜单,它附带一个statusMenu,它可以在左键和右键上打开。在状态菜单中有五个选项:一个执行项目,三个优先设置项目和一个退出项目。

我想分开的行为有点作为菜单被设计成一个把戏小马。左击它应该执行该功能,右键单击应该完全按照原样打开菜单(包括执行)。

任何想法如何做到这一点?

现在,我从代码调用状态菜单正如以往statusMenus

[statusItem setMenu:statusMenu]; 

回答

3

要做到这一点,你需要手动显示菜单。一种方法是创建一个自定义视图并将其放置在状态项中,然后使用事件处理程序执行您的操作。您还可以从事件中获取修改键以执行其他操作。也可以使用状态项的内置目标操作机制,并从NSEvent类方法+pressedMouseButtons+modifierFlags中获取信息。无论哪种方式,您都可以使用NSStatusItem的-popUpStatusItemMenu:方法显示菜单。

有关使用自定义视图处理左右点击的示例,请参见my answer to this question

相关问题