TextField Xcode 11 绑定字符串问题

TextField Xcode 11 Binding String problem

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

在 PDFManager 上,我创建了 var nameCPT : String = "" 并从 ContentView 中尝试用文本字段中的值填充此 var

问题是,Xcode 给我错误说 "Cannot convert value of type 'String' to expected argument type '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()
        }
    }

您需要使用 @Observed 属性 包装器以允许 属性 在您的 PDFManager class.[=13] 中被观察并遵守 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()
    }
}