使用SwiftUI初始化TextField时出现VStack错误

时间:2019-12-01 17:20:57

标签: swift textfield swiftui

在创建此TextField之前没有错误。

此外,如果我这样创建TextField("Placeholder", text: .constant("")),也不会出错。

我正在尝试使用Text类型为Int的文本字段中的数据。

struct ContentView: View {
    @State private var answer: Int = 0

    var body: some View {
        VStack(alignment: .center) {
            Text("some text")
            Spacer()
            TextField($answer)
        }
    }
}

1 个答案:

答案 0 :(得分:1)

错误与TextField有关,并且实际上是:

  

不能使用类型为((Binding)''的参数列表来调用类型为'TextField <_>'的初始化程序

要解决此问题,您需要首先提供一个title和绑定参数的标签:text

TextField("This can be an empty string", text: $answerString)

请注意,TextField不能仅接受数字作为绑定参数!您还必须提供Formatter才能使其正常工作:

TextField("", value: $answer, formatter: NumberFormatter())

也正如我提到的here,您不应该相信Xcode错误的原因,特别是在使用SwiftUI时。