Создание нового NSManagedObject в NSPersistentDocument отказывается сохранять, даже если отмена показывает, насколько это возможно

У меня есть приложение CoreData / NSPersistentDoc. Работает нормально.

Я добавил новый объект в MOM и обновил версию.

Теперь, когда я создаю новые экземпляры этой сущности внутри MOC, пункт меню "Сохранить" остается отключенным до тех пор, пока я не создам экземпляры старых сущностей, которые уже были в приложении.

Красная точка на заголовке окна корректно становится черной, показывая, что документ изменился - но OS X / NSDocument отказывается это признать - сохранить невозможно.

Есть идеи?

1 ответ

Решение

Я нашел причину / решение - это была моя собственная ошибка, но этот ответ может помочь другим с подобными проблемами.

Я использовал официальный подход Apple для включения пунктов меню "Копировать / Вставить" (путем реализации validateMenuItem) и возврата true/false для копирования и вставки в нужное время.

И я возвращал реализацию NSPersistentDocument для всего остального (включая "Сохранить", хотя я этого не видел).

Затем, когда я добавил свой новый NSManagedObject, я добавил подвид и sub-view-controller, и я делегировал validateMenuItem этому - то есть, чтобы он мог обрабатывать свой собственный статус копирования / вставки.

... но у меня не было пути к коду для "если это не копирование и вставка, и оно не обрабатывается дочерним элементом, и оно не обрабатывается моим подклассом NSPersistenDocument... затем передайте его NSPersistentDocument для принятия решения"...

... и поэтому пункт меню Сохранить никогда не был включен.

Другие вопросы по тегам