2017-08-17 45 views
0

我定制NSView子类,以显示上右键单击(按住Ctrl键)上下文菜单覆盖menu(for:)获取有关上下文菜单操作右击事件的位置

我创建了适当的目标/行动菜单项,并将其添加到菜单。

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

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

我怎么能确定初始右键单击事件的位置?

+0

你必须存储(的位置)的原始事件的地方。你可以使用菜单项的'representObject'。 – Willeke

+0

如何?右键单击不会触发'mouseDown(with:)'。 –

+0

呵呵,你的意思是,将传入的事件的位置存储在'menu(for:)'中? –

回答

1

你必须存储(的位置)传递给menu(for:)某个事件。您可以使用菜单项的RepresentObject。

相关问题