Правильно ли архивировать / разархивировать NSWindowController? - PullRequest
0 голосов
/ 08 августа 2011

Мне трудно понять, что происходит не так.У меня есть NSWindowController с NSWindow и NSTextView.Я хочу заархивировать этот NSWindowController и NSWindow (вместе со всеми его элементами управления) в файл.

Затем я хочу разархивировать тот же NSWindowController и NSWindow и все представления из файла.,Но документы Apple гласят:

Note: Although the NSWindow class inherits the NSCoding protocol from NSResponder, the class does not support coding. Legacy support for archivers exists but its use is deprecated and may not work. Any attempt to archive or unarchive an NSWindow object using a keyed coding object raises an NSInvalidArgumentException exception.

Важно, что если я закодируюWithObject: windowController, это не хранит NSWindow.Поэтому, когда я делаю decodeWithObject для windowController, NSWindow не загружается.

Как мне заархивировать / разархивировать NSWindowController / NSWindow и все его элементы управления?Чего мне не хватает?

1 Ответ

1 голос
/ 08 августа 2011

Исходя из ваших ответов, это абсолютно неверный способ сделать это.Единственное место, куда имеет смысл заархивированный граф контроллера / объекта представления, - это когда он заархивирован как nib / xib.Документ содержит данные , а не биты механизма приложения.

Если вы нацеливаетесь на что-либо ниже Lion, сохраните свое состояние где-нибудь в данных документа, когда документ сохранен, и восстановите его, когдадокумент загружен (см. различные этапы загрузки Обзор приложений на основе документов для понимания, где и когда это сделать).

Если вы нацелены на Lion и выше, документациюеще не очень подробно (а в некоторых случаях вообще не существует), но Lion поддерживает ТОЧНО это с минимальными усилиями с вашей стороны.См. видео WWDC 2011 , сессия 119 - Возобновление и автоматическое завершение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...