我刚刚测试了这段截断文本字段输入的简单代码
struct ContentView: View {
@ObservedObject private var viewModel = ViewModel()
var body: some View {
TextField("Text", text: $viewModel.text)
}
}
fileprivate class ViewModel: ObservableObject {
@Published var text = "" {
didSet {
if text.count > 2 {
self.text = String(text.prefix(2))
print("text truncated to \(text)")
}
}
}
}
iOS 13的Xcode 11 -文本字段的输入已正确更新,viewModel的text
已正确更新
iOS 14的Xcode 12 -文本字段的输入未被截断,viewModel的text
已正确更新
Xcode 11,iOS 14 -文本字段的输入未被截断,viewModel的text
已正确更新
在更新viewModel的text
时,将更新文本字段的输入
有人暗示为什么iOS 14中的行为不同吗?