我用下面的代码处理键盘上的字母键。

NSEvent.addGlobalMonitorForEvents(matching: NSEvent.EventTypeMask.keyDown) { event in
    // code
}

然后如何将nsevent标记为已处理,而不允许系统和其他应用程序再次处理它?例如,不允许在打开的文本编辑器中输入按下的字母?

最佳答案

你不能用NSEvent来做。如文件所述:
事件以异步方式传递到您的应用程序,您只能观察事件;您不能修改或阻止事件传递到其原始目标应用程序。
您不是事件生成系统的一部分;您只是在运行循环中获取通知。
如果你想成为事件系统的一部分,在应用层下面,你需要使用CGEvent。见tapCreate(tap:place:options:eventsOfInterest:callback:userInfo:)。回调可以返回NULL以指示它已使用了事件。

10-08 18:44