有没有办法确定在 onMouseDrag 事件期间拖动了什么?具体来说,我想知道是否正在拖动窗口。
我尝试了以下方法: Accessibility API:存储活动窗口的初始位置,在拖动和比较值期间再次查询窗口位置。这种方法的问题是 Accessibility API 不会更新窗口的位置,直到鼠标停止移动(仍然按下主鼠标按钮)。当鼠标在短暂停止后再次开始拖动时,它会提供更新的位置。
将 NSWindowDelegate 附加到活动窗口:我对此很陌生,所以我不知道找到焦点/活动窗口的 NSWindow 的方法。
提前致谢!
更新:我使用 Accessibility API 获取活动窗口并附加 AXObserverRef 以获取 kAXMovedNotification。我使用 CFRunLoopAddSource 将此观察者添加到运行循环中。结果是通知的回调排队并仅在我停止拖动窗口时触发多次调用。有没有办法让回调立即触发而不像这样排队,这样我就可以在拖动窗口时运行一些代码,而不是在拖动停止时运行一些代码?