Как правильно открыть окно в OSX?

У меня есть приложение, которое я создал в Xcode. Это не на основе документов.

Как сделать так, чтобы, когда пользователь нажимал, скажем, значок док-станции, окно снова открывалось? Я создаю все из пера, который Xcode автоматически дал мне.

Я пытался реализовать applicationShouldOpenUntitledFile: и звонит makeKeyAndVisible в моем приложении делегата window свойство, но это портит значок приложения. (Я предполагаю, что это связано с иконками, служащими для предварительного просмотра документов.)

Несмотря на это, я немного погуглил и в основном нашел ссылки на Carbon API или приложения на основе документов.

Как работает процесс создания окна между NSApplicationMain и nib-файлом моего приложения, как я могу реплицировать этот процесс и где я могу это сделать?

1 ответ

Решение

Как правило, я считаю, что работа с NSWindowControllers делает работу с окнами намного проще. В вашем случае ваш делегат приложения не будет владельцем окна напрямую, а будет владельцем NSWindowController это владеет окном.

Для этого вы должны создать новый NSWindowController подкласс (с xib для пользовательского интерфейса) и перенесите ваше окно из MainMenu.xib в ваш новый WindowController.xib. Зацепи вещи, и тогда ты готов к работе. (также убедитесь, что флажок "Видимо при запуске" в вашем окне снят)

Из вашего делегата приложения вы просто создадите новый экземпляр контроллера окна (неважно, программно или через MainMenu.xib) и скажете ему: -showWindow: когда вы хотите, чтобы окно показывалось (или становилось ключевым), и -close когда ты хочешь, чтобы это ушло.

Что касается ответа на значок Dock, <NSApplicationDelegate> Метод, который вы ищете, это -applicationShouldHandleReopen:hasVisibleWindows:,

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