在SwiftUI中使用箭头键作为.keyboardShortcut时遇到问题。示例iOS应用程序:
struct ContentView: View {
@State var time: Date = Date()
var body: some View {
VStack {
Button("Press Me") {
time = Date()
}
.keyboardShortcut(KeyEquivalent.rightArrow, modifiers: [])
Text("\(time)")
}
}
}这将显示一个按钮,当按下该按钮时,会更改text中显示的时间。我应该能够使用键盘上的右箭头键并使其正常工作,但它不能。如果我将keyboardShortcut行更改为,比如说:
.keyboardShortcut(KeyEquivalent(“a”), modifiers: [])一切都按预期运行。你可以按“a”键,时间就会改变。如果你按住命令键,你会得到系统提供的显示“a”快捷键的平显设备。将其更改为.rightAarrow,它会显示平显设备,但快捷键有一个封闭的“?”,并且快捷键在按下箭头键时不会触发。
(我知道我可以使用UIKit做到这一点。(试图了解为什么SwiftUI版本不起作用。)
发布于 2021-01-13 02:25:12
我正试图在我的MacOS SwiftUI应用程序中实现同样的目标。以您的代码为例,我在Button{}之后插入了.keyboardShortcut(KeyEquivalent.rightArrow, modifiers: []),它工作得很好。然后,我将您的整个代码粘贴到我的ContentView中,它再次正常工作。我不知道为什么它在我的MacOS应用程序中有效,但在你的iOS应用程序中不起作用。
https://stackoverflow.com/questions/65584926
复制相似问题