在我的应用程序中,有一个奇怪的问题,即当窗口在屏幕上拖动时,自定义NSView
会收到转发的鼠标拖动事件,通常是通过其工具栏。
从堆栈跟踪来看,Cocoa 框架似乎是自己完成的。
(可能是通常的响应链)
现在我正在尝试检测拖动事件是否来自我的视图或其他地方 - 是否有任何强大的方法可以做到这一点?
我找不到一个公共成员来存储鼠标按下发生的视图(尽管NSEvent
似乎将其存储在内部私有字段中)。
或者任何将窗口配置为不转发拖动消息的选项?
任何提示赞赏!
NSEvent
具有locationInWindow
,它将事件发生的位置作为NSPoint
返回。与NSPointInRect
一起,您可以检查该位置是否在窗框或类似窗口中。