【发布时间】:2020-05-14 20:04:00
【问题描述】:
所以,只是一些上下文,我已经为 NSTextView 实现了一个包装 SwiftUI 视图,一切工作或多或少都很好,但我想添加一个监听器,用于按下 Cmd + Enter 组合,到目前为止我得到了这个:
class Coordinator: NSObject, NSTextViewDelegate {
var parent: NSTextViewWrapper
init(_ parent: NSTextViewWrapper) {
self.parent = parent
}
func textView(_ textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {
if commandSelector == #selector(NSResponder.insertNewLine(_:)) {
let event = NSApp.currentEvent
// if event?.modifierFlags != NSEvent.ModifierFlags.command {
// Here I would like to trigger some action when the user is done editing the text field and wants to commit the result
// return true
// }
return false
}
return false
}
在我的一生中,我无法弄清楚如何做到这一点。
【问题讨论】:
-
if event.modifierFlags.intersection(.deviceIndependentFlagsMask) == [.command] && event.keyCode == 36 {...} else {...} -
您介意扩大您的答案吗?看来我不需要覆盖委托上的 textView 函数并只听事件?