Вот моя проблема:
У меня есть приложение на основе документов, написанное с использованием Core Data. Когда создается новый документ (при запуске приложения или с помощью команды «Файл» > «Создать» или Cmd+N), мне нужно, чтобы этот документ был заполнен исходными начальными объектами. Допустим, мой документ представляет собой записную книжку, поэтому я хочу, чтобы новый документ содержал пустую заметку при создании. Итак, я невинно вставляю свои объекты (-[NSEntityDescription initWithEntity: insertIntoManagedObjectContext:
), и это работает.
Моя проблема заключается в том, что документ выглядит отредактированным сразу после открытия. Это ужасный UX. Более того, при закрытии этого документа без внесения каких-либо дополнительных изменений пользователю предлагается сохранить его (очень надоедливо!).
Итак, до сих пор я пытался решить эту проблему, устанавливая действия как отбрасываемые в моем менеджере отмены (с -[NSUndoManager setActionIsDiscardable:]
по YES
на [myDocument undoManager]
). Но это ничего не меняет.
Для отладки я переопределял -[NSDocument isDocumentEdited]
и всегда возвращал NO
. Это частично решает проблему. Конечно, я не хочу иметь дело с этим материалом, я думаю, это должно быть исправлено на стороне контекста менеджера отмены/постоянного документа/управляемого объекта.
Кто-нибудь сталкивался с такой же проблемой?
Всем большое спасибо!
NSUndoManager
. Я опубликую ответ на это. Если вы помните этот метод, пожалуйста, дайте мне знать! Спасибо. Миха - person Micha Mazaheri   schedule 30.10.2013