我按下以下代码处理按键盘上的字母键。
NSEvent.addGlobalMonitorForEvents(matching: NSEvent.EventTypeMask.keyDown) { event in
// code
}
如何将NSEvent标记为已处理,不允许系统和其他应用再次处理它?例如,不允许在打开的文本编辑器中输入按下的字母?
答案 0 :(得分:3)
NSEvent
无法做到这一点。正如文档所述:
事件以异步方式发送到您的应用程序,您只能观察事件;您无法修改或以其他方式阻止将事件传递到其原始目标应用程序。
您不属于事件生成系统;你只是收到通知作为你的runloop的一部分。
如果您想成为活动系统的一部分,请在应用层下方使用CGEvent
。见tapCreate(tap:place:options:eventsOfInterest:callback:userInfo:)
。回调可以返回NULL
以表明它已经消耗了该事件。