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