【问题标题】:Prefill textfields in SwiftUI is broken in iOS 15SwiftUI 中的预填充文本字段在 iOS 15 中被破坏
【发布时间】:2021-12-18 04:44:46
【问题描述】:

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

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 并在 iOS 15 上运行,文本字段中 includeWords 的值仅在我在文本字段中输入光标至少一次时才会出现

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

  • 颜色没有问题(我的意思是想象文本和背景的颜色相同)
  • coredata 端没有问题,因为值已成功存储在 coredata 中。

目标

  • 用户打开表单后,立即从 iOS 15 中的 coredata 中填写文本字段

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

【问题讨论】:

    标签: ios core-data swiftui ios15 swiftui-form


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • 欢迎来到 Stack Overflow,感谢您提供答案。您能否编辑您的答案以包括对您的代码的解释?这将有助于未来的读者更好地理解正在发生的事情,尤其是那些刚接触该语言并难以理解这些概念的社区成员。
    猜你喜欢
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    相关资源
    最近更新 更多