获取上下文菜单操作上的右键单击事件的位置

时间:2017-08-17 07:45:11

标签: macos cocoa contextmenu nsmenu

我的自定义NSView子类会覆盖menu(for:),以便在右键单击时显示上下文菜单(按住Ctrl键单击)。

我创建了一个包含适当目标/操作的菜单项,并将其添加到菜单中。

我想实例化一个子视图并将其放在最初发生右键的位置;但是,目前尚不清楚如何获取导致菜单显示的原始点击事件的位置。

action方法的sender参数获取NSMenuItem实例,但这似乎没有任何属性来确定它在屏幕(或其超级视图)上的位置。

如何确定初始右键单击事件的位置?

1 个答案:

答案 0 :(得分:1)

您必须存储传递到menu(for:)某处的事件(的位置)。您可以使用菜单项的representObject。