Приложение на основе документа сразу же завершает работу над документом после cmd + w и не сохраняется. Как я могу отреагировать на это и запросить сохранение документа или его автоматическое сохранение?В приложении на основе документов, как вы предотвращаете потерю данных, когда пользователь случайно нажал cmd + w, а не cmd + s?
0
A
ответ
1
Используйте метод NSDocument
updateChangeCount(_:)
, чтобы отметить ваш документ как отредактированный, а Cocoa позаботится об остальном!
Кроме того, если вы используете NSUndoManager
для всех изменений, он обновит счет изменений для вас!
В большинстве случаев вы должны искать эти «крючки» в существующих функциях Cocoa, так что ваше приложение ведет себя точно так же, как и другие приложения OS X, и поэтому вы наследуете новые функции, когда новые версии ОС выпущены.
Tried [self updateChangeCount: NSChangeUndone]; в readFromData ... без эффекта. Док все же закрывается мгновенно, и все данные теряются. – iamjustaprogrammer
Это потому, что 'NSChangeUndone' предназначен для того, чтобы сообщить документу, что вы запретили изменение - вместо этого используйте' NSChangeDone'. – andyvn22