代码之家  ›  专栏  ›  技术社区  ›  Alex

RightMouseDown:未在nsControl子类中调用

  •  1
  • Alex  · 技术社区  · 15 年前

    我有一个 NSControl 子类(配置为层宿主视图,尽管我怀疑这是相关的)。我一直在尝试编写代码来获取和显示上下文菜单。然而,两者都不是 menuForEvent: rightMouseDown: 正在被呼叫。知道是什么引起的吗?其他鼠标事件正常工作。

    作为旁白,我不确定是否需要打电话 菜单事件: 我自己,但医生们让我觉得我没有,这就是为什么我尝试先推翻它。无论如何,我至少应该期待 右鼠标: 被称为_

    相关:AppKit似乎无法将ctrl+click识别为鼠标右键单击。大概我得检查一下 mouseDown: 并打电话 右鼠标: 手动。但是考虑到我所看到的奇怪,还有别的方法吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Septih    15 年前

    包括了吗 -(NSView *)hitTest:(NSPoint)aPoint 子类中的方法?可能是鼠标事件正被视图中的另一个元素捕获,这将阻止 menuForEvent 被召唤。

    您认为应该自动调用menuForEvent是正确的。

        2
  •  1
  •   Peter Hosey    15 年前

    检查其返回值 mouseDownCanMoveWindow . 文档不是非常清楚,但意味着如果此方法返回 YES ,视图(控件)将无法获取鼠标悬停事件。

    如果这是您的问题,请创建控件类的子类(如果它还不是子类),并实现该方法以返回 NO .