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