Переключение NSWindows

У меня есть два NSWindows, оба с NSPanel в них. Я хочу переключать окна при нажатии кнопки. Как это может быть сделано? Мне больше не нужно старое окно, поэтому я просто хочу показать новое.


person James Anderson    schedule 14.11.2012    source источник
comment
Вы хотите переключить фокус с одного окна на другое? Или, возможно, анимировать содержимое одного окна в другое? Будьте точнее.   -  person trojanfoe    schedule 14.11.2012
comment
Вы хотите переключить фокус с одного окна на другое — да, именно так. Извините :)   -  person James Anderson    schedule 14.11.2012
comment
Если вы хотите удалить «старое» окно с экрана, вы можете отправить ему сообщение close или сообщение orderOut:.   -  person rob mayoff    schedule 14.11.2012
comment
Что вы имеете в виду, у вас есть NSPanel внутри каждого NSWindow? Вы добавляете их как дочерние окна? Если да, то зачем? И как дочернее окно (если это то, что вы делаете) связано с проблемой переключения окон? И почему вы хотите скрыть предыдущее окно, а не просто показать новое окно, либо само по себе, либо в виде листа? Отображение одного окна и скрытие другого в приложениях Mac крайне нерегулярно.   -  person Peter Hosey    schedule 14.11.2012


Ответы (1)


Чтобы сфокусировать второе окно, просто вызовите:

[window2 makeKeyWindow];
person trojanfoe    schedule 14.11.2012
comment
Привет, я делаю это, но ничего не происходит, и старое окно остается на месте: pastie.org/5375952 - person James Anderson; 14.11.2012
comment
@PixelBitAppsLtd: вы не можете создать окно с init — в результирующем окне не будет прямоугольника рамки и, следовательно, его нельзя будет использовать. Используйте один из инициализаторов, перечисленных в документации NSWindow. - person Peter Hosey; 14.11.2012
comment
@PeterHosey Я пробовал это, но все равно не повезло - окно вообще не меняется: pastie.org/5376517 - person James Anderson; 14.11.2012
comment
Хорошо, это было бы проще; Могу ли я просто создать перо с NSPanel и добавить его как «подвид» в NSWindow? Как я могу это сделать? (это мое первое приложение для Mac - я привык к iOS-разработке) :-) - person James Anderson; 14.11.2012
comment
@PixelBitAppsLtd: Нет; окна не являются представлениями в Какао. Вы можете сделать дочернее окно, но это, вероятно, не совсем то, что вы хотите (опять же, вы на самом деле не сказали, что вы пытаетесь сделать). Скорее всего, вам следует просто создать перо с представлением и добавить это представление в качестве подпредставления. - person Peter Hosey; 14.11.2012