Swift NSTextField, execute on Cmd + Enter



所以,只是一些上下文,我已经为 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
}

对于我的生活,我不知道该怎么做。

尼斯。有了@LeoDabus输入,真的没有什么可改变的:

func textView(_ textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {
if let event: NSEvent = NSApp.currentEvent {
if event.modifierFlags.intersection(.deviceIndependentFlagsMask) == [.command] && event.keyCode == 36 {
print("caught [⌘ + ⏎]")
}
return true
}
return false
}

从而用评论部分的晦涩单行结束徒劳的小时。 🎉

最新更新