Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我绑定SwiftUI TextField的值时,它的行为很奇怪(可以';t输入中文,有时退格会跳过一个字符)_Swift_Swiftui - Fatal编程技术网

当我绑定SwiftUI TextField的值时,它的行为很奇怪(可以';t输入中文,有时退格会跳过一个字符)

当我绑定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

这是一个最小的复制代码。我怀疑这与更改SearchTerm有关,导致UI重新加载或其他什么,但我不太明白这一点。理想情况下,我会
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。这是雷达。