当我绑定SwiftUI TextField的值时,它的行为很奇怪(可以';t输入中文,有时退格会跳过一个字符)
这是一个最小的复制代码。我怀疑这与更改SearchTerm有关,导致UI重新加载或其他什么,但我不太明白这一点。理想情况下,我会当我绑定SwiftUI TextField的值时,它的行为很奇怪(可以';t输入中文,有时退格会跳过一个字符),swift,swiftui,Swift,Swiftui,这是一个最小的复制代码。我怀疑这与更改SearchTerm有关,导致UI重新加载或其他什么,但我不太明白这一点。理想情况下,我会onEditingChange,但我想对每个按键做出反应 struct ContentView: View { @State var searchTerm: String = "Hello World!" var body: some View { let binding = Binding
onEditingChange
,但我想对每个按键做出反应
struct ContentView: View {
@State var searchTerm: String = "Hello World!"
var body: some View {
let binding = Binding<String>(get: {
self.searchTerm
}, set: {
if $0 != self.searchTerm
{
self.searchTerm = $0
}
})
return VStack{
TextField("Search field", text: binding)
Text(searchTerm)
}
}
}
struct ContentView:View{
@State var searchTerm:String=“你好,世界!”
var body:一些观点{
let binding=binding(获取:{
self.searchTerm
},集:{
如果$0!=self.searchTerm
{
self.searchTerm=$0
}
})
返回VStack{
文本字段(“搜索字段”,文本:绑定)
文本(搜索术语)
}
}
}
(这是最新的非测试版Xcode、Swift、macOS等)
编辑:我认为这可能只是一个SwiftUI错误-
大家好,也遇到这个问题的其他人。我相信这是一个无法解决的平台错误,我的解决方案只是使用包装好的UIKit UITextField。。。这正是我希望避免的。
大家好,也遇到这个问题的其他人。我相信这是一个无法解决的平台错误,我的解决方案只是使用包装好的UIKit UITextField。。。这正是我希望避免的。为什么不直接绑定到$searchTerm
?这只是一个最小的复制-我的真实场景涉及到term->(bla blah vlah vblah)->列表中的搜索结果。哦而且直接绑定仍然会复制bugOh原来,复制可以做得更小:我为此在苹果bug报告系统中填充了一个bug。是雷达。为什么不直接绑定到$searchTerm
?这只是一个最小的复制-我的真实场景涉及到term->(bla blah vlah vblah)->列表中的搜索结果。哦而且直接绑定仍然会复制bugOh原来,复制可以做得更小:我为此在苹果bug报告系统中填充了一个bug。这是雷达。