Как правильно открыть окно в 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:
,