我使用Mac OS X High Sierra的Xcode 9.4和Swift 4.1编写了一个应用程序。它具有一个自定义的NSView和一个自定义的NSViewController。自定义NSView类具有用于处理键盘事件(keyUp和keyDown)的重写函数。 (它也有一个对acceptsFirstResponder属性的覆盖,该属性返回true。)
如果用户键入X键,则该应用程序将构建一个包含消息文本和2个按钮的NSAlert对象,并以工作表模式形式显示该对象。可以通过以下三种方式之一取消警报:
问题在于,在情况2和3中,用于关闭NSAlert的键的键盘事件会传播到自定义NSView键盘处理程序。有没有办法禁止这种传播?