2012-01-27 6 views
1

В настоящее время у меня есть NSWindow, который позволяет использовать весь экран. В окне есть видеоплеер и плейлист под ним. Когда пользователь переходит в полноэкранный режим, я хочу избавиться от плейлиста и просто показать видео.OS X Lion: Fullscreen NSWindow Bait & Switch

Мои первые мысли для этого - поменять окно, когда я обнаруживаю полноэкранную точку входа. Я обнаружил, что я могу обнаружить это следующим:

- (void)windowWillEnterFullScreen:(NSNotification *)notification 
{ 
    NSLog(@"My window is going fullscreen"); 
} 

Но я был не в состоянии понять, как поменять окно для нового в этой точке. Один из вариантов, который я еще не предпринял, - это изменить все флаги изменения размера видео и скрыть другие компоненты, но я не уверен, что это будет лучшее решение.

Есть ли у кого-нибудь предложения по лучшему пути для этого?

+0

Аналогичный вопрос для одного подхода: http://stackoverflow.com/questions/9019178/osx-lion-different-views-in-fullscreen-and-in-windowed-mode – CRD

ответ

2

Почему вы хотите поменять окно? Просто манипулируйте представлениями в окне.

Просто снимите плейлист с вашего вида, когда вы в полноэкранном режиме перейдете в полноэкранный режим с -removeFromSuperview, а затем измените размер видео, чтобы он заполнил ваше окно.

Убедитесь, что вы держите ссылку на представление в качестве ivar где-то, потому что в противном случае вид будет освобожден. Затем вы можете использовать эту ссылку, чтобы добавить представление назад, когда окно выходит из полноэкранного режима.