Создание нового NSManagedObject в NSPersistentDocument отказывается сохранять, даже если отмена показывает, насколько это возможно
У меня есть приложение CoreData / NSPersistentDoc. Работает нормально.
Я добавил новый объект в MOM и обновил версию.
Теперь, когда я создаю новые экземпляры этой сущности внутри MOC, пункт меню "Сохранить" остается отключенным до тех пор, пока я не создам экземпляры старых сущностей, которые уже были в приложении.
Красная точка на заголовке окна корректно становится черной, показывая, что документ изменился - но OS X / NSDocument отказывается это признать - сохранить невозможно.
Есть идеи?
1 ответ
Я нашел причину / решение - это была моя собственная ошибка, но этот ответ может помочь другим с подобными проблемами.
Я использовал официальный подход Apple для включения пунктов меню "Копировать / Вставить" (путем реализации validateMenuItem) и возврата true/false для копирования и вставки в нужное время.
И я возвращал реализацию NSPersistentDocument для всего остального (включая "Сохранить", хотя я этого не видел).
Затем, когда я добавил свой новый NSManagedObject, я добавил подвид и sub-view-controller, и я делегировал validateMenuItem этому - то есть, чтобы он мог обрабатывать свой собственный статус копирования / вставки.
... но у меня не было пути к коду для "если это не копирование и вставка, и оно не обрабатывается дочерним элементом, и оно не обрабатывается моим подклассом NSPersistenDocument... затем передайте его NSPersistentDocument для принятия решения"...
... и поэтому пункт меню Сохранить никогда не был включен.