有没有办法独立于我的应用程序在 macOS 上跟踪鼠标移动?

Is there a way to track mouse movement on macOS independent of my app?

macOS/Swift 上是否有某种系统级别或可访问性 API 会在用户与鼠标交互时触发回调,而不管我的应用是否处于焦点状态?

例如托盘应用程序或后台服务应用程序之类的东西,可以收集鼠标事件。

您要查找的是名为 NSEvent class 的方法 class func addGlobalMonitorForEvents(matching mask: NSEvent.EventTypeMask, handler block: @escaping (NSEvent) -> Void) -> Any?。请注意,它只会在您的应用未激活时调用:

NSEvent.addGlobalMonitorForEvents(matching: [.mouseMoved]) { event in
    print("event:", event)
}

如果您需要在您的应用处于活动状态时监控鼠标事件,您需要使用 class func addLocalMonitorForEvents(matching mask: NSEvent.EventTypeMask, handler block: @escaping (NSEvent) -> NSEvent?) -> Any?:

在本地监控它
NSEvent.addLocalMonitorForEvents(matching: [.mouseMoved, .leftMouseDown, .mouseExited]) { event in
    switch event.type {
    case .mouseMoved: print("mouseMoved")
    case .leftMouseDown: print("leftMouseDown")
    default: print("other event")
    }
    return event
}