TextField Xcode 11绑定字符串问题

时间:2019-09-27 01:57:54

标签: string textfield swiftui

我有一个名为PDFManager的文件,它负责创建和保存pdf文件。

在PDFManager上,我创建var nameCPT:String =“”,然后从ContentView中尝试用文本字段中的值填充此var

问题是,Xcode给我一个错误,说“无法将'String'类型的值转换为预期的参数类型'Binding'”

我尝试使用pdf管理器使用@State创建var,但仍然无法正常工作 知道如何将我的textField的值传递给PDFManager吗?

谢谢

import SwiftUI

struct ContentView: View {

    var lm : PDFManager

    var body: some View {

        VStack {
            fakebar
            Spacer()
            HStack {
                TextField("Insert Nome CPT", text: lm.nameCPT). 
               // not working, I try with $lm.nameCPT but still not working
                    .padding(.leading)
            }
            Spacer()
        }
    }

1 个答案:

答案 0 :(得分:0)

您需要使用@Observed属性包装器来观察属性并遵守PDFManager类中的ObservableObject

class PDFManager:ObservableObject {
    var nameCPT:String = "test"
}
struct ContentView: View {

    @ObservedObject var lm : PDFManager = PDFManager()

    var body: some View {

        VStack {
            Spacer()
            HStack {
                TextField("Insert Nome CPT", text: $lm.nameCPT)
                    .padding(.leading)
                Button(action:{
                    // Prints the value stored in your PDF manager
                    print(self.lm.nameCPT)
                }){
                    Text("Check")
                }
            }
            Spacer()
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}