kon*_*iki 10 swift ios13 swiftui xcode11
我已经使用 SwiftUI 一个星期了,作为每个人,我都在努力确定不起作用的东西是错误还是我的误解。
我正在使用 TextField 视图,但从未执行onCommit闭包。该onEditingChanged工作正常。当文本字段获得焦点时,它被调用为 true,当它失去焦点时它被调用为 false。
该onCommit关闭,但是,永远不会执行。根据代码中可用的小文档:
onCommit:当用户在
TextField具有焦点的情况下执行操作(通常是返回键)时要执行的操作。
这是代码:
TextField($value,
placeholder: Text(placeholder),
onEditingChanged: { edit in
print("edit = \(edit)")
},
onCommit: {
print("COMITTED!")
}).textFieldStyle(.roundedBorder).padding(.horizontal, 20)
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想将焦点从接收 RETURN 键的文本字段中移动,并将焦点放在以下字段上。使用 UITextField 和 resignFirstResponder() 和 becomeFirstResponder() 很容易。
我已经设法使用UIViewRepresentable来嵌入旧的 UITextField,但这不是本文的重点。我真的希望让它在纯 SwiftUI 代码中工作。
如果我可以让 onCommit 工作,我应该在那里放什么来实现我的目标?
更新:问题似乎只存在于 iOS,而不是 macOS,它似乎工作正常。
更新 2:这是在我的机器上运行建议代码的结果的视频。我确实向 Apple 提交了一个错误……我们拭目以待。
您的代码应该可以正常工作,就像在 Xcode 11.0 beta 1 上一样。但是,我可以确认这目前在 beta 2 上无法按预期工作。我为此问题向 Apple 提交了一份错误报告。
更新:这个问题已在Xcode 11 beta 3中得到修复。
| 归档时间: |
|
| 查看次数: |
8272 次 |
| 最近记录: |