如何使用先前保存的 coreData 加载 TextEditor
Posted
技术标签:
【中文标题】如何使用先前保存的 coreData 加载 TextEditor【英文标题】:How to load TextEditor with previously saved coreData 【发布时间】:2020-10-27 15:13:54 【问题描述】:我正在尝试使用 SwiftUI 构建一个简单的笔记样式应用程序。我设法创建了一个实体 (ApplicationQuestion
),使用 TextEditor
将用户输入 (question.answer
) 保存到该实体的属性中,并将该属性显示到视图中。
但是,我不想每次都保存并覆盖 question.answer
,以便能够对其进行编辑。
我只能找到使用 UIkit 执行此操作的示例,并且文档没有说明如何将文本加载到编辑器中。如果 SwiftUI 无法实现这一点,我无法确定,我需要使用不同的方法。
目前的答案作曲家是这样的:
struct answerComposer: View
let question: ApplicationQuestion
@Environment(\.managedObjectContext) var moc
@State var answerText: String = ""
@State private var currentWordCount: Int = 0
var body: some View
VStack
//Title
Text(self.question.title?.uppercased() ?? "Unknown Title")
.font(.largeTitle)
//Detail
Text(self.question.detail ?? "Unknown detail")
.font(.footnote)
.fontWeight(.light)
//answer
Text(self.question.answer ?? "Unknown answer")
.font(.body)
.padding()
//text editor
TextEditor(text: $answerText)
.allowsTightening(true)
.onChange(of: answerText) value in
let words = answerText.split $0 == " " || $0.isNewline
self.currentWordCount = words.count
.padding()
// Save Button
Button("Save")
// let question = ApplicationQuestion(context: self.moc)
question.answer = self.answerText
try? self.moc.save()
【问题讨论】:
【参考方案1】:我猜你想要这个
struct answerComposer: View
let question: ApplicationQuestion
@Environment(\.managedObjectContext) var moc
@State private var currentWordCount: Int = 0
@State private var answerText: String
init(question: ApplicationQuestion)
self.question = question
self._answerText = State(initialValue: question.answer ?? "") // << here !!
// ... other code
【讨论】:
太棒了!一个小的编辑,您需要为答案提供一个默认值,如下所示: init(question: ApplicationQuestion) self.question = question self._answerText = State(initialValue: question.answer ?? "")以上是关于如何使用先前保存的 coreData 加载 TextEditor的主要内容,如果未能解决你的问题,请参考以下文章
XMPP,CoreData - 如何仅加载自身和目标用户消息?
如何使用 SQLite 文件预加载 Core Data,该文件引用使用“外部存储”保存的图像?