【问题标题】:NSView loses mouseMoved/mouseDragged if dragged in from subview如果从子视图中拖入,NSView 会丢失 mouseMoved/mouseDragged
【发布时间】:2013-05-11 11:02:39
【问题描述】:

A = 父 NSView; B = 子 NSView;

B 有一个小的 NSTrackingArea; B是A的一个小子视图;

如果在空白区域中移动、单击、拖动,A 会正确接收 mouseMoved 和 mouseDragged 事件。

如果我在 B 中单击并将鼠标拖到 A 的边界之外,A 不会收到任何 mouseMoved 或 mouseDragged 事件。

谁能指出我可以做些什么来让超级视图 A 对这种拖累做出反应?

【问题讨论】:

  • 您是否在视图层次结构/响应者链中实现了更高级别的 mouseDragged?如果您在该函数中设置断点,当您超出 viewA 边界时会调用它吗?

标签: objective-c cocoa nsview


【解决方案1】:

我观察到了这一点,我可以通过以下方式解决它:

  1. 创建一个 NSViewController 并将 viewA 设置为其“view”属性。
  2. 就我而言,我在视图控制器中实现了 mouseDragged 但 您可以尝试查看视图并查看获得的结果。鼠标进入 和 mouseExited 在视图子类中实现。

提示:确保根据需要更新跟踪区域边界。 希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    相关资源
    最近更新 更多