我想要以下工作流程:
- 用户按下热键或状态栏菜单按钮
- 用户点击一个窗口
- 窗口现在在我的应用程序中“注册”
- 应用拦截所有注册窗口的鼠标事件
我读过很多关于 CGEvents、CGEventTaps 和 NSEvents 的文章。我可以使用 CGEvents 和 CGEventTaps 拦截全局事件并发布新事件,但是 NSEvent 中没有像 windowNumber 这样的窗口信息,只有 PSD(我不确定如何使用这些),所以我无法过滤掉来自非注册的窗口。另一方面,NSEvent 不允许我拦截全局事件,只能通过 localMonitor 拦截本地事件。
我怎样才能实现所需的功能?