如何检测键盘按键上的特定键?

问题描述 投票:0回答:1

如何检测 swiftUI 中的字母“A”按键? macOS.

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
           Rectangle()
                .fill(.white)
                .frame(width: 100, height: 100)
                .onHover { Bool in
                    
                    func doSomething(event: NSEvent) -> NSEvent? {
                        guard !event.isARepeat else {
                            return nil
                        }
                        
                        print ("key code for letter 'A' is" + event.keyCode.description)
                        if event.keyCode == 10 {
                            print("Letter 'A' pressed")
                            
                            return nil
                        }
                        
                        return event
                    }
                    
                }
        }
        .padding()
    }
}

P.S:对于无论如何都会对这个问题投反对票的人 --> 在 stackoverflow 中,尽可能多地投反对票是一个传统。所以,继续吧。

swiftui keypress
1个回答
0
投票

以下代码可让您键入任意键并显示其字符。 调整它以检测在 macos 中键盘上按下的特定键。

struct ContentView: View {
    @State private var keyPressed: String = ""
    
    var body: some View {
        Text(keyPressed)
            .onAppear {
                NSEvent.addLocalMonitorForEvents(matching: [.keyDown]) { nsevent in
                    if let char = nsevent.characters {
                        keyPressed = char
                    }
                    return nsevent
                }
            }
    }
}

不要在

func doSomething(event: NSEvent)
里面声明函数,比如
.onHover{...}
,这不是做这个的合适地方。

© www.soinside.com 2019 - 2024. All rights reserved.