NSTextView由核心数据支持

时间:2016-03-25 17:42:34

标签: core-data nstextview nspersistentdocument

我在一个选项卡中有一个带有NSTextView的NSTabViewController。文本保存在核心数据中。我在视图消失时保存文本。

override func viewWillDisappear()
{
    super.viewWillDisappear()
    self.saveText()
}

但是如何在文档本身关闭时保存文本?目前我节省了每次击键,但这可能太过分了。还有更好的方法吗?

func textDidChange(notification: NSNotification)
{
    self.saveText() //save text after every keystroke => excessive but works
}

修改

func saveText()
{
    guard let assumedObject = self.representedObject as? NSManagedObject else { return }
    assumedObject.notes = self.textView.string
}

2 个答案:

答案 0 :(得分:1)

NSPersistentDocument负责所有保存操作,撤消操作等。这是本课程的全部目的。没有必要向Core Data推送任何东西。只需将您的NSTextView值绑定到Core Data属性即可。

最好删除对saveText()功能的所有来电。

答案 1 :(得分:-1)

如果saveData()有效,而saveText()没有,可能您应该拨打saveData()

保存文本字段的正确位置是textFieldDidEndEditing:,一种文本字段委托方法。