找到右键单击显示的NSMenu位置

时间:2012-11-07 10:58:19

标签: objective-c macos nsmenuitem nsmenu

在我的应用中,我有三个NSImageView。当用户右键单击imageview时,我显示NSMenu两个NSMenuItem s“添加照片”,“删除照片”。由于我有三个Imageview,我需要知道哪个imageview显示菜单。所以我只能为那个imageview做我的东西。

那我该怎么做呢?我无法在窗口中找到NSMenu的位置。

1 个答案:

答案 0 :(得分:1)

如果您知道应用中的上下文(右键单击)菜单何时出现,您应该能够获得原始的“NSEvent”数据。要检测它发生,您有几个选项(like overriding "rightMouseDown:" in your "NSWindow" subclass)

在“NSEvent”中,您可以获取locationInWindow(我已经为您链接了Apple文档)。使用该信息,您可以检查鼠标是否落在三个图像视图帧的边界内。

然后你就会知道要添加或删除哪张照片。