SwiftUI 中的预填充文本字段在 iOS 15 中被破坏

Prefill textfields in SwiftUI is broken in iOS 15

在 iOS 14 中,我使用以下代码预填充核心数据模型中的所有文本字段

struct EditSimpleSearchView: View {

   @Environment(\.managedObjectContext)
    private var viewContext
    
   @ObservedObject
   private var item: FetchedResults<SavedSearchItemEntity>.Element

   @State var includeWords: String = ""

   init(item: FetchedResults<SavedSearchItemEntity>.Element) {
      self.item = item
   }


  var body: some View {
      VStack {
                Form {
                TextField.init("Include all words", text: 
                  $includeWords).disableAutocorrection(true
                }.onAppear {
                   includeWords = item.includeWords //load from coredata in onAppear
             }
      }

一旦我 运行 代码,includeWords 的值就会出现在表单中的文本字段中。

一旦我更新到 Xcode 13 和 运行ning iOS 15,includeWords 的值仅当我在文本字段中至少输入一次光标时,文本字段才会出现

到目前为止,这是我调试的内容

目标

我目前没有想法,感谢任何帮助。如果预填充不应以不同方式配置,我愿意接受建议。

试试这个:

init(item: FetchedResults<SavedSearchItemEntity>.Element) {
    self.item = item
    self._includeWords = State(initialValue: item.includeWords) // 
}