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

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

Я добавил новую сущность в MOM и обновил версию.

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

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

Есть идеи?


person Adam    schedule 29.06.2011    source источник


Ответы (1)


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

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

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

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

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

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

person Adam    schedule 03.07.2011