如何检测 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 中,尽可能多地投反对票是一个传统。所以,继续吧。
以下代码可让您键入任意键并显示其字符。 调整它以检测在 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{...}
,这不是做这个的合适地方。