macOS - 有没有办法知道哪个文本字段触发了 performKeyEquivalent?

macOS - Is there a way to know which textfield triggered performKeyEquivalent?

我创建了 NSView 的子类并将其分配给 ViewController 的主视图。

我有两个 NSTableViews 在那个观点上。这些子视图有 NSTextField 个。

我开始编辑这些文本字段之一,然后按 Cmd C

performKeyEquivalent 被触发。

我怎么知道哪个文本字段触发了它?

我添加了这一行

override func performKeyEquivalent(with event: NSEvent) -> Bool {
  super.performKeyEquivalent(with:event)
  let firstResponder = self.window?.firstResponder

但正如预期的那样,它没有帮助。

macOS 告诉我 firstResponder 是 NSTextView,但我没有项目的文本视图。

tag 也帮不上忙。我的 tableView 的单元格的标签等于 100、200 和 300,但是

let tag = (firstResponder! as! NSTextView).tag

给我 -1 (?)

有什么想法吗?

NSTextField 是自己的编辑器的委托,即 NSTextView,所以应该怎么走

override func performKeyEquivalent(with event: NSEvent) -> Bool {

    if let editor = self.window?.firstResponder as? NSTextView, 
       let textField = editor.delegate as? NSTextField {             
         print("Identified by: \(textField.tag)")
    }

    return super.performKeyEquivalent(with:event)
}