此问题与使用 Xcode 12.4 (SwiftUI 2) 的macOS应用程序(不是 iOS 或 Catalyst)的 SwiftUI 有关。问题在于,编辑列表内的文本字段效果不佳,事实上,它的效果非常差,以至于一开始我以为我根本无法编辑它。
这是代码,只是一个简单的例子:
import SwiftUI
struct ContentView: View {
@State var name1 = "Hans"
@State var name2 = "E"
@State var name3 = ""
var body: some View {
List {
TextField("Name 1", text: $name1)
TextField("Name 2", text: $name2)
TextField("Name 3", text: $name3)
}
.textFieldStyle(RoundedBorderTextFieldStyle())
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我尝试编辑字段时的经历:
我希望这不是预期的行为。对于仅包含单个字符的字段来说,这尤其成问题,使用户感到困难(必须准确地点击“E”)。我在这里做错了什么吗?
我注意到问题Editable TextField in SwiftUI List,它有点相似,但该问题报告 TextField …
我在一些文章中看到@state有很多限制
我尝试制作一个结构模型并在 contentview (ParentView)中用 @state 标记它,并通过用 @binding 包装它来将该模型传递给它的子视图,它工作得很好,所以我不明白为什么我们仍然需要 @objectbinding因为我们可以将相同的值传递给这些子视图,如果一个视图发生变化,其他视图也会发生变化?或者@objectbound解决的@state有哪些限制?