[英]iOS 15: using UISheetPresentationController in SwiftUI
[英]Prefill textfields in SwiftUI is broken in iOS 15
在 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值才会出现
到目前为止,这是我调试的内容
目标
我目前没有想法,任何帮助表示赞赏。 如果不应该以不同的方式配置预填充,我愿意接受建议。
改变
@ObservedObject private var item: FetchedResults<SavedSearchItemEntity>.Element
到
@ObservedObject var item: SavedSearchItemEntity
并使用
$item.includeWords
直接在TextField中,不需要State变量
此外,摆脱自定义初始化。 在处理 SwiftUI 时远离它们
尝试这个:
init(item: FetchedResults<SavedSearchItemEntity>.Element) {
self.item = item
self._includeWords = State(initialValue: item.includeWords) //
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.