Ios 在SwiftUI中将Int/Double与TextField绑定需要返回键

Ios 在SwiftUI中将Int/Double与TextField绑定需要返回键,ios,swift,binding,swiftui,Ios,Swift,Binding,Swiftui,我试图让TextField在fly中返回值,而不是用户必须按下return键才能存储值。对于下面的当前代码,用户必须按enter键才能将值与变量绑定。问题是,如果有多个字段,用户只需点击它们,那么该字段将不会绑定。另外,numberPad键盘类型没有返回键 谢谢你的帮助 struct ContentView: View { @State var number = 0 var formatter: NumberFormatter = { let f = Numbe

我试图让TextField在fly中返回值,而不是用户必须按下return键才能存储值。对于下面的当前代码,用户必须按enter键才能将值与变量绑定。问题是,如果有多个字段,用户只需点击它们,那么该字段将不会绑定。另外,numberPad键盘类型没有返回键

谢谢你的帮助

struct ContentView: View {

    @State var number = 0

    var formatter: NumberFormatter = {
       let f = NumberFormatter()
        f.isLenient = true
        return f
    }()

    var body: some View {
        Form {
            Section {
                TextField("Price", value: $number, formatter: formatter)
                     .keyboardType(.numberPad)
                Text("\(number)")
            }
        }
    }
}

这是当前带格式化程序的SwiftUI文本字段的已知行为。您可以尝试中提供的另一种方法,该方法工作顺利。谢谢你指出这一点。尽管我注意到该字段不接受键盘类型。你知道我该怎么做吗?好的,我想我成功了。然而,又出现了一个问题。当我有一个双精度值时,字段中的初始值为0.0,替换方法不允许我删除字段中的值。这是当前SwiftUI TextField和formatter的已知行为。您可以尝试中提供的另一种方法,该方法工作顺利。谢谢你指出这一点。尽管我注意到该字段不接受键盘类型。你知道我该怎么做吗?好的,我想我成功了。然而,又出现了一个问题。当我有一个双精度值时,字段中的初始值为0.0,替换方法不允许我删除字段中的值。