【问题标题】:Get the Location of Right Click Event on Context Menu Action在上下文菜单操作中获取右键单击事件的位置
【发布时间】:2017-08-19 18:57:08
【问题描述】:

我的自定义 NSView 子类覆盖 menu(for:) 以便在右键单击(ctrl-click)时显示上下文菜单。

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

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

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

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

【问题讨论】:

  • 您必须在某处存储(位置)原始事件。您可以使用菜单项的representedObject
  • 怎么样?右键单击不会触发mouseDown(with:)
  • 哦,你的意思是,存储menu(for:)中传入的事件位置?
  • 谢谢,它有效。我认为我无法从传递给menu(for:)NSEvent 实例中获取点击位置(我想这是它传递的原因之一)。如果你把它作为一个答案,我会接受它。

标签: macos cocoa contextmenu nsmenu


【解决方案1】:

您必须在某处存储传递给menu(for:) 的事件(位置)。您可以使用菜单项的代表对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多