【发布时间】:2021-10-18 05:53:01
【问题描述】:
我在 SwiftUI 中使用 TextField() 时遇到了一个非常尴尬的问题。我要做的就是将数据从文本字段传递给一个类(用@ObservableObject 标记)。在这个类中,有一个名为 displayData() 的函数,它只打印出文本字段传递的数据。我会说 70% 的时间,字符串的最后一个字符丢失了。让我感到困扰的是它并非一直都在发生。这让我很难弄清楚。
举个例子,如果我在第一个 TextField() 中输入 1234,print(self.username) 将返回 123。当我尝试添加第二个 4 时,它会打印出 12344。
TextField() 和 SecureField() 都有这个问题。
这就是 ContentView 中发生的事情
TextField("Enter your username here.", text: self.$dataManager.username)
.padding()
SecureField("Enter your password here.", text: self.$dataManager.password)
.padding()
Spacer()
Button(action: {
self.dataManager.displayData()
}, label: {
Text("Send Data")
}).padding()
Spacer()
在课堂上:
var username: String = ""
var password: String = ""
func displayData(){
print("USERNAME: \(self.username), PASSWORD: \(self.password)")
}
非常感谢!
【问题讨论】:
-
这个视图是创建
dataManager实例还是在其他地方创建的?