小编Mar*_*rin的帖子

SwiftUI TextField 在变量更改时不刷新

TextFieldLista 里面有一个NavigationView,声明如下:

\n
NavigationView {\n    List {\n        Section("Item Name") {\n            TextField("", text: $itemName)\n                .textInputAutocapitalization(.sentences)\n                .disableAutocorrection(false)\n                .textFieldStyle(.plain)\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

.onAppear的方法中NavigationView,我设置了文本字段的文本变量,该变量是用 声明的@State,如下所示:

\n
@State var itemName: String = ""\n
Run Code Online (Sandbox Code Playgroud)\n

和:

\n
.onAppear {\n    itemName = "Hello, World!"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

文本设置正确,但文本字段以某种方式不刷新\xe2\x80\x99。我可以这么说,因为我可以访问文本字段的文本属性并获取更新的值,并且当用户点击文本字段进行编辑时,文本会突然出现。

\n

在我看来,当变量更改时文本字段更新其视图是一个问题。我是否必须调用 UIKit 的 SwiftUI 等效项layoutSubviews?或者我声明我的itemName变量是错误的?

\n

最小可重复示例 (MRE):

\n
struct ItemView: View {\n\n    @State var itemName: String = ""\n\n    var body: some View {\n …
Run Code Online (Sandbox Code Playgroud)

xcode swift swiftui swiftui-list

1
推荐指数
1
解决办法
1532
查看次数

标签 统计

swift ×1

swiftui ×1

swiftui-list ×1

xcode ×1