Лучший способ объяснить это с помощью примера того, как его настроить. Допустим, у вас есть подкласс NSWindowController, который является контроллером для окна настроек. Окно настроек находится в NIB, называемом «Настройки».
В вашем подклассе NSWindowController у вас будет следующий метод init:
- (id)init {
if (self = [super initWithWindowNibName:@"Preferences"]) {
//do initalisation
}
return self;
}
Это инициализирует контроллер окна, связывая его с пером «Preferences» в основном комплекте приложения. Обратите внимание, что NIB еще не загружен (это произойдет при первом вызове -window на контроллере окна.
В NIB «Предпочтения» вы можете щелкнуть значок «Владелец файла» и перейти на панель «Сведения о классе» в Инспекторе. Здесь вы должны установить класс для имени вашего класса контроллера окна (например, PreferencesController). Теперь это представляет экземпляр вашего оконного контроллера, так что вы можете подключить розетки и действия.
При редактировании в IB это просто прокси объекта, как и любой объект, который вы перетаскиваете в NIB, но при загрузке NIB он будет установлен на созданный вами контроллер окна.