Swift NSTextField,在 Cmd + Enter 上执行

标签 swift macos cocoa swiftui

所以,只是一些上下文,我已经为 NSTextView 实现了一个包装 SwiftUI View ,一切都或多或少地工作正常,但我想在按下 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
}
因此,在评论部分用晦涩的单行文字结束无用的时间。 🎉

关于Swift NSTextField,在 Cmd + Enter 上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61806458/

相关文章:

ios - 无法识别的选择器发送到实例 - 如何修复 : Error Loading picture from photo album

ios - 如何在 iOS 上压缩 Realm DB?

cocoa - NSSplitView 中的 NSTableView 框架不正确

python - 监控用户空闲时间

swift - 带有 2 个链接的 UITextView 属性文本,每个链接都有不同的颜色不起作用

ios - NSObjects iOS 的复制和引用

python - 我在通过 pip 使用终端下载 slycot 库时遇到问题

python - Matplotlib 窗口出现在后面?

cocoa - 从 nib 文件中检索对象

cocoa - NSTextView的automaticLinkDetectionEnabled方法如何工作?