2015-09-11 2 views
0

Приложение на основе документа сразу же завершает работу над документом после cmd + w и не сохраняется. Как я могу отреагировать на это и запросить сохранение документа или его автоматическое сохранение?В приложении на основе документов, как вы предотвращаете потерю данных, когда пользователь случайно нажал cmd + w, а не cmd + s?

ответ

1

Используйте метод NSDocumentupdateChangeCount(_:), чтобы отметить ваш документ как отредактированный, а Cocoa позаботится об остальном!

Кроме того, если вы используете NSUndoManager для всех изменений, он обновит счет изменений для вас!

В большинстве случаев вы должны искать эти «крючки» в существующих функциях Cocoa, так что ваше приложение ведет себя точно так же, как и другие приложения OS X, и поэтому вы наследуете новые функции, когда новые версии ОС выпущены.

+0

Tried [self updateChangeCount: NSChangeUndone]; в readFromData ... без эффекта. Док все же закрывается мгновенно, и все данные теряются. – iamjustaprogrammer

+0

Это потому, что 'NSChangeUndone' предназначен для того, чтобы сообщить документу, что вы запретили изменение - вместо этого используйте' NSChangeDone'. – andyvn22

Смежные вопросы