未设置核心数据脏标志

时间:2011-03-17 21:37:11

标签: core-data nsmanagedobjectcontext nsdocument

我有一个基于核心数据文档的可可应用程序,除了一个有点奇怪的问题外,它运行良好。

出于某种原因,如果我对我的任何字段进行更改,菜单/窗口似乎无法识别它 - 即。红色关闭按钮没有获得黑色“脏”指示器,并且未启用“文件/保存”菜单项。但是,如果我尝试关闭应用程序(通过命令-Q),我会弹出窗口询问我是否要保存更改。

似乎正在设置文档的脏标志,但窗口/菜单项没有对它做出反应。我很好奇我可能会在哪里看到为什么会出现这种情况。我怀疑它可能与我的窗口有关,不知道我的ManagedObjectContext ...

唯一稍微不典型的行为是我的文档的makeWindowControllers方法已被覆盖,我正在使用对我的文档的[self addWindowController:xxx]方法的调用来添加我的窗口控制器。我的窗口控制器是NSWindowController的子类,所以我必须将自己的实例变量添加到每个窗口控制器以保存ManagedObjectContext,但我怀疑这不会传递给窗口/菜单。不知道这里的正常模式是什么......

无论如何,任何想法都会非常感激。感谢

2 个答案:

答案 0 :(得分:1)

从描述中可以看出,您的UI元素实际上并未绑定到文档本身。如果是这样,则UI元素不会观察文档,也不会对文档中的更改做出反应。检查绑定。

答案 1 :(得分:0)

部分感谢TechZen,并重新阅读我自己的问题(特别是,我说“我怀疑它可能与我的窗口有关,而不知道我的ManagedObjectContext ”我开始查看我的WindowController子类的绑定。

事实证明,我没有将文件所有者窗口插件绑定到我的实际NSWindow。一旦我这样做,黑脏点和窗口的菜单开始表现正常。