Лев возобновляется при закрытии документов без выхода из приложения - PullRequest
6 голосов
/ 29 сентября 2011

Я впервые окунаюсь в какао.

Вот простой вопрос.OS X Lion поддерживает возобновление состояния окна, когда приложение завершается и перезапускается.Ладно, хорошо и хорошо.

Но для приложений на основе документов может ли то же самое Возобновить функция также управлять сохранением состояния окна, когда документ закрывается и открывается позже , но без каких-либовыход из приложения? (Другими словами, может ли он постоянно управлять состоянием каждого файла независимо от того, выходит приложение или нет? Или мне нужно управлять им самостоятельно, сохраняя информацию в файлах документов?)

Например, приложения iWork '09 делают выполняют такие действия: если вы закроете сохраненный документ и откроете его снова, он восстановит размер окна, расположение и положение прокрутки.Я не знаю, если он делает это, используя Lion Resume как таковой.

Но, напротив, TextEdit Lion OS X восстанавливает окна, когда он завершается и перезапускается, но этоне запоминает состояния окна при закрытии и повторном открытии документа.Это вызывает у меня подозрение, что использование Resume без выхода может быть невозможно автоматически (поскольку, возможно, Pages сохраняет состояния окон в своем собственном формате файла, а TextEdit - нет, поскольку использует файлы в формате обычного текста, RTF, HTML и т. Д.).


У меня пока нет доступа к видеороликам WWDC 2011, и ни примечания к выпуску OS X, ни Руководство по программированию приложений OS X, ни документация по API NSWindowRestoration специально не говорят об этом.

Итак, вопрос снова: автоматическое запоминание состояния окна документа после закрытия и повторное его открытие без выхода из приложения (как это делает iWork) ... Поддерживает ли Lion's Restore это?

Спасибомного!

1 Ответ

2 голосов
/ 29 сентября 2011

Но для приложений, основанных на документе, может ли та же функция возобновления также управлять сохранением состояния окна, когда документ закрывается и открывается позже, но без выхода из приложения? (Другими словами, может ли он постоянно управлять состоянием каждого файла независимо от того, выходит приложение или нет?

Не без посторонней помощи, нет.

Или мне нужно управлять им самостоятельно, сохраняя информацию в файлах документов?)

Или где-то еще, да.

Мое непроверенное предложение - попробовать использовать протокол восстановления окон самостоятельно. Закрывая, отправьте себе encodeRestorableStateWithCoder:, а затем сохраните эти данные в своем документе (или где вы хотите). При открытии документа, если он имеет восстанавливаемую информацию о состоянии, передайте его restoreStateWithCoder:.

...