【问题标题】:TextField Xcode 11 Binding String problemTextField Xcode 11 绑定字符串问题
【发布时间】:2019-09-27 01:57:54
【问题描述】:

我有一个名为 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()
        }
    }

【问题讨论】:

    标签: string textfield swiftui


    【解决方案1】:

    您需要使用@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()
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 2020-02-10
      • 2020-02-03
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多