Лев возобновляется при закрытии документов без выхода из приложения

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

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

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

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

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


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

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

Большое спасибо!

1 ответ

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

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

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

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

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

Другие вопросы по тегам