作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经创建了 NSView
的子类并将其分配给主 ViewController 的 View 。
我在该 View 上有两个 NSTableViews
。这些 subview 有 NSTextField
。
我开始编辑这些文本字段之一,然后按 Cmd C
。
performKeyEquivalent
被触发。
我怎么知道哪个文本字段触发了它?
我已经添加了这一行
override func performKeyEquivalent(with event: NSEvent) -> Bool {
super.performKeyEquivalent(with:event)
let firstResponder = self.window?.firstResponder
但不出所料,它没有帮助。
macOS 告诉我 firstResponder 是一个 NSTextView
,但我没有项目的 TextView 。
tag
也无济于事。我的 tableView 的单元格的标签等于 100、200 和 300,但是
let tag = (firstResponder! as! NSTextView).tag
给我 -1
(?)
有什么想法吗?
最佳答案
NSTextField
是自己编辑器的委托(delegate),它是 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)
}
关于ios - macOS - 有没有办法知道哪个文本字段触发了 performKeyEquivalent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59467481/
按“Command +”会导致两次 -performKeyEquivalent 调用。这是第一次调用的堆栈跟踪片段: 1 AppKit 0
我已经创建了 NSView 的子类并将其分配给主 ViewController 的 View 。 我在该 View 上有两个 NSTableViews。这些 subview 有 NSTextField
我是一名优秀的程序员,十分优秀!