这是我的问题:
我有一个基于文档的应用程序,全部使用 Core Data 编写。创建新文档时(在应用程序启动时,或使用 File > New 或 Cmd+N),我需要使用初始种子对象填充此文档。假设我的文档是一个笔记本,所以我希望新文档在创建时包含一个空笔记。所以我无辜地插入我的对象(-[NSEntityDescription initWithEntity: insertIntoManagedObjectContext:
),它工作。
我的问题是,文档似乎在打开后立即被编辑。这是一个糟糕的用户体验。此外,当关闭此文档而不添加任何进一步的更改时,会提示用户保存它(超级麻烦!)。
因此,到目前为止,我尝试解决此问题的方法是将操作设置为可在我的 undo-manager 上丢弃-[NSUndoManager setActionIsDiscardable:]
(设置为YES
on [myDocument undoManager]
)。但这并没有改变任何东西。
为了调试,我覆盖-[NSDocument isDocumentEdited]
并总是返回NO
. 它部分解决了这个问题。当然,我不想处理那些东西,我想它应该固定在 undo-manager/persistent document/managed object context 方面。
有人遇到同样的问题吗?
非常感谢大家!