切换到其他窗口后,鼠标移动事件停止工作

时间:2019-02-28 11:16:10

标签: swift macos cocoa

acceptsMouseMovedEvents可以正常工作,但是当我的应用程序窗口不在最前面时,鼠标移动事件将停止工作。如果我的窗户在前面,一切正常

我该怎么办?我希望我的应用程序可以在后台运行。

1 个答案:

答案 0 :(得分:0)

您可以通过调用NSEvent.mouseLocation获得鼠标位置。这就是数字色度计的工作方式(计时器+鼠标定位)

OBJ示例

 _timer = [NSTimer scheduledTimerWithTimeInterval:1
                                          repeats:YES block:^(NSTimer * _Nonnull timer) {
                                           NSPoint point = [NSEvent mouseLocation];
                                           NSLog(@"%@", NSStringFromPoint(point));
                                     }];

SWIFT:

var timer = Timer.scheduledTimer(withTimeInterval: 1,
                                 repeats: true,
                                 block: { timer in let point: NSPoint = NSEvent.mouseLocation
                                    print("(NSStringFromPoint\(point))")
})