【发布时间】:2012-10-06 12:46:33
【问题描述】:
我很难理解为什么当鼠标位于视图之外时,为什么会为我的一个 NSView 子类调用 mouseDragged 而不是另一个。
以编程方式将子类 1 添加到 NSWindow,然后将其作为子窗口添加到主应用程序窗口。当鼠标在视图内单击并拖动时,即使鼠标移到视图框架之外,mouseDragged 也会继续被调用。这就是我想要发生的事情。
子类 2 在 XIB 文件中分配给应用程序主窗口中的自定义视图对象。在这种情况下,mouseDragged 事件仅在鼠标停留在视图内时触发。
我遗漏了什么明显的东西?
【问题讨论】:
-
我们能多看一点吗?也许您的视图子类或其他东西 - 因为这看起来不像预期的行为。
-
我看到了类似的东西,但它是每个窗口中相同的 NSView 子类。一个(在父窗口中)按预期工作。另一个(在子窗口中)仅在鼠标位于视图上方时才看到 mouseDragged。我很想知道系统如何跟踪 mouseDown 视图以知道将 mouseDragged 发送到哪个视图。
标签: objective-c cocoa nsview