Почему NSWindow не восстанавливает свое состояние (используя Resume in Lion)? - PullRequest
3 голосов
/ 22 декабря 2011

Я работаю над реализацией Resume в моем приложении Snow Leopard. В главном окне моего приложения я установил флажок Restorable в Интерфейсном Разработчике, и все работает нормально. Его делегат вызвал -window:willEncodeRestorableState:state и -window:didDecodeRestorableState:, просто отлично. Все работает.

У меня есть другое окно, которое иногда будет открываться при выходе пользователя. Я проверил Restorable для этого и реализовал два метода выше. ..willEncode.. вызывается, когда я ухожу с открытым окном, но ..didDecode.. никогда не вызывается, и окно не восстанавливается. Я прочитал документацию , и мне показалось, что я, возможно, захочу создать класс восстановления , но в документах не совсем ясно, как это сделать.

Я пытался реализовать протокол <NSWindowRestoration> в моем AppDelegate и в делегате моего второго восстанавливаемого окна, но метод +restoreWindowWithIdentifier:state:completionHandler: никогда не вызывался ни для одного из них.

Что мне не хватает? Я на правильном пути с NSWindowRestoration, но не делаю это правильно? То, как доктора говорили о классе реставрации, звучало так, будто их будет только один. Нужно ли указывать это в списке приложений или что-то в этом роде?

1 Ответ

1 голос
/ 27 декабря 2011

То, что указано выше Резюме документации не упоминается, чтобы упомянуть NSWindow -restorationClass свойство.Если вы установите это свойство в коде (для класса, который реализует <NSWindowRestoration>, то этот класс отвечает за создание окна.

...