qit*_*shi 8 macos swift swiftui
我正在使用 SwiftUI 制作 macOS 应用程序,并且我想使用内置键盘上的箭头键来偏移 SwiftUI 视图。
我在网上找不到很多资源,但onMoveCommand()似乎是我需要的事件处理程序。尝试后,我发现我指定的操作onMoveCommand()似乎没有被执行。这是我为了测试它而编写的一些代码:
struct ContentView: View {
var body: some View {
Text("Hello")
.onAppear() {
print("Appeared!")
}
.onMoveCommand() { (direction) in
print("Moved!")
}
.onTapGesture() {
print("Tapped!")
}
}
}
Run Code Online (Sandbox Code Playgroud)
onMoveCommand()不打印“已移动!” 当我按箭头键时,我会听到错误警报声,但没有打印任何内容。onAppear()成功打印“出现了!” 视图出现时显示消息,并onTapGesture()打印“Tapped!” 每当我单击文本时都正确。这似乎告诉我,我为这些视图事件获得的基本语法是正确的,但我实现onMoveCommand()不正确。
现在,我只希望我的应用程序在按下箭头键时将某些内容打印到 Xcode 控制台,并能够区分按下的是哪个箭头键。有人可以解释一下我做错了什么吗?
键盘事件仅由焦点视图处理,因此修复是
var body: some View {
Text("Hello")
.focusable() // << here !!
.onAppear() {
print("Appeared!")
}
.onMoveCommand() { (direction) in
print("Moved!")
}
.onTapGesture() {
print("Tapped!")
}
}
Run Code Online (Sandbox Code Playgroud)
使用 Xcode 11.4 / macOS 10.15.4 进行测试。确保您已在系统偏好设置中打开键盘导航。
| 归档时间: |
|
| 查看次数: |
1325 次 |
| 最近记录: |