Я уверен, что это действительно простая проблема, но я вырываю из нее волосы!
У меня есть подкласс NSWindowController под названием WinAController. Это было создано в IB и находится в MainMenu.xib.
У меня есть отдельное перо под названием WinA.xib, которое содержит только одно окно. В этом наконечнике я установил следующее:
- Класс владельца файла
WinAController
- Свойство
window владельца файла для WinA
- Делегат WinA для
WinAController (который реализует протокол NSWindowDelegate).
Я подключил пункт меню MainMenu к методу -showWindow WinAController, чтобы при нажатии WinA отображалась, но ничего не происходило. Похоже, что свойство window WinAController не устанавливается.
Где я ошибаюсь? Нужно ли мне инициализировать WinAController с помощью WinA.xib в какой-то момент кода, чтобы установить это?
Спасибо,
Ответ 1 · Garry Pettet
Это, вызванное из WinAController, похоже, работает отлично:
- (id)init {
// Load our window from the nib
self = [super initWithWindowNibName:@"WinA"];
// Now we're initialised - return us
return self;
}
Ответ 2 · GTAE86
Гарри, у меня была аналогичная проблема с диалоговым окном, использующим код из вашего ответа выше. Я мог один раз отобразить диалоговое окно, но после этого он больше никогда не отображался (у меня было простое тестовое приложение с окном с кнопкой для отображения диалогового окна). Я продолжал видеть ответы с такими словами: "Подключите оконный выход на объекте File's Owner к окну в вашем наконечнике", но не мог понять, как это сделать. Похоже, это часть того, о чем вы спрашиваете.
Вот что я понял: Наряду с вашим решением вам также необходимо выполнить шаги по этой ссылке - Подключить выход оконного контроллера к окну