Скажи это вслух 10 раз несколько раз:
Интерфейсный Разработчик - мой друг.
Мне удалось собрать пример проекта, который будет делать то, что ты хочешь сделать примерно за 5 минут.используя Interface Builder как часть процесса.http://www.markdouma.com/developer/ShowWindowWithRedView.zip.
Вы не можете отобразить вид, не поместив его сначала в окно;безусловно, самый простой способ сделать это - перетащить второе окно в Интерфейсном Разработчике, установить его невидимым при запуске, перетащить универсальное настраиваемое представление NSView в Окно, установить его класс равным SRRedView (вашкрасный вид подкласс).Как писал d11wtq, вы переопределяете примитивный метод рисования NSView, как он показывает (хотя лично я предпочитаю NSBezierPath :-P).
В вашем классе контроллера вы определяете IBOutlets, а затем подключаете их в Интерфейсном Разработчике.Они дают вам возможность ссылаться на важные части вашего интерфейса, чтобы вы могли управлять ими программно.
Я добавил один метод IBAction, который вызывается кнопкой в главном окне.Этот метод просто говорит второму окну показывать себя.
- (IBAction)showWindowWithRedView:(id)sender {
[windowWithRedView makeKeyAndOrderFront:nil];
}
За 8 или более лет, которые я занимался программированием какао, я не думаю, что мне когда-либо приходилось прибегать к ручному созданию окон и представлений.Всегда было намного быстрее просто загрузить другой файл пера, который содержит окна или представления, которые мне нужно отобразить.Использование Interface Builder вместе с Xcode для создания вашего приложения несколько отличается от того, как работают другие IDE.(В частности, когда вы упорядочиваете вещи в Интерфейсном Разработчике, вы генерируете не столько код, сколько создаете экземпляры объектов пользовательского интерфейса, а затем «замораживаете» их в их текущем расположении в архивном файле .nib. При запуске приложения, они возвращаются к жизни. Или, по крайней мере, так я думаю об этом).