查找在右键单击中显示的NSMENU位置



在我的应用中,我有三个 NSImageView。当用户右键单击ImageView时,我将显示一个NSMenu,两个NSMenuItem S"添加照片","删除照片"。由于我有三个ImageView,因此我需要知道哪个ImageView显示菜单。这样我只能为该图像视图做我的事情。

那么我该怎么做?我在窗口中找不到NSMENU的位置。

如果您知道何时出现上下文(右键单击)菜单在您的应用程序中,则应该能够获取其发生的原始" NSEvent"数据。要检测它的发生,您有一些选择(例如" NSWindow"子类中的" rightMouseDown:")。

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

,然后您将知道要添加或删除的照片。

最新更新