Показать панель запуска, как XCode в Lion - PullRequest
2 голосов
/ 28 августа 2011

Мое приложение во время запуска предлагает пользователю выбрать шаблон, это отлично работает на Snow Leopard, но на Lion окно никогда не появляется, возможно из-за поведения восстановления.

Мое приложение основано на NSDocument, и я использую NSDocumentControllerчтобы открыть окно в newDocument: (id) отправитель

Теперь в Lion не вызывается ни один делегат приложения, связанный с «без названия», поэтому я не понимаю, как заставить его работать

Я думаю, XCode4 основана на NSDocument и показывает панель запуска, как она работает?

Еще одно поведение интеллектуальной панели запуска XCode состоит в том, чтобы отображать панель только тогда, когда другие окна не восстановлены, опять же, как это реализовано в Lion?

1 Ответ

2 голосов
/ 28 августа 2011

Вы правы, подозревая поведение нового восстанавливаемого состояния. При повторном запуске / возобновлении приложения никогда не могут попросить создать новый пустой документ. Об этом говорится в примечаниях к выпуску:

В рамках функции восстанавливаемых окон делегат приложения не может быть предложено создать окно без названия при запуске в некоторых обстоятельства. Было обнаружено, что это вызывает сбои в некоторых приложениях, поэтому эти приложения будут поддерживать 10.6, чаще открывая Untitled окна. Когда эти приложения перекомпилированы на 10.7, они получат 10.7 поведение. Для максимальной совместимости, не зависит от того, чтобы спросить создать окно без названия при запуске.

В них не упоминается альтернатива, и документация приложения на основе документов, по-видимому, еще не обновлена ​​с восстанавливаемой информацией о состоянии.

Что касается вашего подхода, вы можете изменить его, чтобы выбор шаблона отображался в виде листа в новом пустом окне документа (например, «Страницы» или «Инструменты»). Содержание документа устанавливается после заполнения листа шаблона. Таким образом, каждый новый документ показывает свой шаблон, но это происходит только в том случае, если пользователь запрашивает новый документ, а не полагается на новый запуск приложения (что вам больше не нужно делать).

...