Проблема связывания строки TextField Xcode 11 - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть файл с именем PDFManager, который отвечает за создание и сохранение файла PDF.

в PDFManager Я создаю переменную nameCPT: String = "" и из ContentView я пытаюсь заполнитьэта переменная со значением из текстового поля

проблема в том, что Xcode выдает мне сообщение об ошибке "Не удается преобразовать значение типа 'String' в ожидаемый тип аргумента 'Binding'"

Я пытался в PDFменеджер создать переменную с @State, но все еще не работает, как передать значение моего 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 голосов
/ 27 сентября 2019

Вам нужно использовать @Observed упаковщик свойств, чтобы разрешить наблюдаемое свойство и соответствовать ObservableObject в вашем классе PDFManager.

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()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...