Как установить делегат для класса, который создает конструктор интерфейса? - PullRequest
0 голосов
/ 01 августа 2011

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

 myControl = [[NSWindowController alloc] initWithWindowNibName:@"ServerWindow"];
[myControl showWindow:self];

Этот второй XIB (ServerWindow.xib) загружается без проблем, и к нему подключены ServerWindow.h и ServerWindow.m (Перетаскивается в объект NSObject и указывает его на этот класс в IB.

Затем я продолжаю и устанавливаю некоторые настройки в ServerWindow, и когда я закрываю это окно, я хочу делегировать эти настройки обратно моему исходному классу (делегат приложения).

Проблема заключается в том, что, хотя я не создаю экземпляр своего класса (ServerWindow.h), Интерфейсный Разработчик использует этот магический вариант IB, когда он загружает XIB, я не могу установить свой исходный класс в качестве его делегата.

Как я могу перевести сообщение обратно в исходный класс?

Ответы [ 2 ]

4 голосов
/ 01 августа 2011

Перетащите объект во вторую xib, а затем установите класс в исходный класс на панели справа / инспекции / атрибутов. Затем нажмите Ctrl - перетащите на только что созданный объект из объекта контроллера и установите его в качестве делегата.

0 голосов
/ 01 августа 2011

Я не совсем уверен, что правильно вас понимаю, но разве вы не можете назначить себя делегатом в awakeFromNib или даже в Интерфейсном Разработчике?Вы также можете получить доступ к свойству окна WindowController, чтобы попасть в окно сервера.

...