OSX: 非关键应用时跟踪鼠标位置

OSX: Track mouse position when not the key application

我正在 Swift 中编写一个 OSX 应用程序,并且想要跟踪鼠标位置,即使该应用程序不是关键应用程序。此代码序列适用于我的视图,但当应用程序不再是主应用程序时视图停止接收 mouseMoved 事件:

    window!.acceptsMouseMovedEvents = true
    window!.makeMainWindow()
    window!.makeKeyAndOrderFront(self)
    window!.makeFirstResponder(self)

当我的应用程序不再是关键时,如何继续获取 mouseMoved 应用程序?

为了使其正常工作,需要启用无障碍功能,或者您的应用程序必须在无障碍功能方面受到信任。然后你可以调用方法:

addGlobalMonitorForEventsMatchingMask(_:handler:)

这会为您要接收通知的特定事件类型注册一个处理程序方法。

这是 Apple 关于 monitoring events 的文档。