我有简单的鼠标点击全局监控器:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDownMask handler:^(NSEvent *event){
if ([event type] == NSLeftMouseDown) {
[self mouseDown];
if (self.lockMouse) {
// Cancel event
}
}
}];
有没有办法取消全局鼠标事件,所以点击只会通知我的应用程序? I.e。:在“锁定”时单击屏幕上的任何按钮(不属于我的应用程序)后,事件会转到此处,但不会转到光标下方的按钮。类似于JavaScript中的event.preventDefault()。
答案 0 :(得分:3)
没有这个API,没有。从文档中可以看出该块是:
事件处理程序块对象。它被传递给监视器。您无法更改事件,只需观察它即可。
如果您想截取事件并阻止其传播,则需要使用CGEventTap
代替。