我遇到了TextField的问题(输入文本的颜色)。我正在使用MVVM模式,我的代码如下:
import SwiftUI
struct ContentView: View {
@ObservedObject var viewModel: ViewModel
var body: some View {
CustomView(email: $viewModel.dataModel.emailID)
}
}
struct CustomView: View {
@Binding var email: String
var body: some View {
VStack {
TextField("email", text: $email)
.foregroundColor(.black)
.frame(height: 30.0)
.textContentType(.emailAddress)
.keyboardType(.emailAddress)
.background(Color.white)
.padding([.top, .bottom])
Spacer()
}.padding(20)
}
}
public final class ViewModel: ObservableObject {
/// data model
public var dataModel: DataModel
public init (model: DataModel) {
self.dataModel = model
}
}
public final class DataModel {
@Published public var emailID: String
public init(emailID: String) {
self.emailID = emailID
}
}
上述代码存在的确切问题是,当我在文本字段中输入文本时,文本颜色也是白色,与背景颜色相同,尽管前景颜色是黑色。请告诉我我错在哪里了。我是通过以下方式从SceneDelegate实例化ContentView的:
let contentView = ContentView(viewModel: ViewModel(model: DataModel(emailID: "")))