将命令快捷方式发送到 NSTextView 的下一个响应程序



我有一个MacOS应用程序,它通过实现NSWindow.keyDown(with event:)来侦听关键事件。我使用它来启用像⌘ n这样的快捷方式来创建新项目。除了存在作为第一响应方的NSTextView时,这一点工作良好。在这种情况下,文本视图将吞噬事件,并且不会调用我的keyDown函数。如何防止这种情况,并让textview将事件发送到下一个响应程序(最终是我的NSWindow(?

您可以子类NSTextView覆盖keyDown方法并调用下一个响应程序:

import Cocoa
class TextView: NSTextView {
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
}
override func keyDown(with event: NSEvent) {
super.keyDown(with: event)
nextResponder?.keyDown(with: event)
}
}

相关内容

  • 没有找到相关文章

最新更新