如何防止TextField在SwiftUI列表中消失?

时间:2019-12-19 22:14:30

标签: swift uitextfield uikit swiftui textfield

有一个讨厌的SwiftUI错误,如果将TextField放在HStack内的List中,则会消失

List {
    ForEach(0...200, id: \.self) { index in
        HStack {
            Text("Text \(index)")
            TextField("Test", text: .constant("TextField \(index)"))
        }
    }
}

-

TextField放在HStack / VStack / ZStack / .overlay() / .background()中时会发生这种情况。当TextFieldForEach的唯一孩子时,不会发生这种情况。

我已提交了一个错误(FB7500885),但我正在寻找社区中的想法以解决该问题。到目前为止,这是我尝试过的:

  • .frame()上设置明确的TextField
  • .fixedSized()上设置TextField
  • 使用包裹在UITextField中的UIViewConvertible,有或没有布局约束

还有什么我可以尝试的吗?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

  List {
      ForEach(0...200, id: \.self) { index in
          HStack {
              Text("Text \(index)")
            TextField("Test", text: .constant("TextField \(index)")).id(index)
          }
      }
  }