我创建了一个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
也不起作用。我的tableViews单元格的标签等于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)
}