SwiftUI TextField无法观察iOS 14中ObservedObject的更改

时间:2020-07-28 19:53:50

标签: swiftui

我刚刚测试了这段截断文本字段输入的简单代码

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中的行为不同吗?

0 个答案:

没有答案