OSX Lion: разные представления в полноэкранном и оконном режиме - PullRequest
1 голос
/ 26 января 2012

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

Я придумал следующее:

- (void)windowWillEnterFullScreen:(NSNotification *)notification
{
    NSLog(@"entering fullscreen");
    oldView = [[[NSApplication sharedApplication] mainWindow] contentView];
    [oldView retain];
    [[[NSApplication sharedApplication] mainWindow] setContentView:myViewOfInterest];
}

-(void)windowWillExitFullScreen:(NSNotification *)notification
{
    [[[NSApplication sharedApplication] mainWindow] setContentView:oldView];
}

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

Я очень плохо знаком с Objective-C и Cocoa, поэтому кто-нибудь может сказать мне, что я делаю неправильно?

Заранее спасибо!

1 Ответ

1 голос
/ 27 января 2012

Представление может быть только подвидом для одного другого представления одновременно. Ваш myViewOfInterest будет удален как вспомогательное представление (иерархии представлений) oldView, когда вы сделаете его представлением содержимого окна. При последующем восстановлении oldView необходимо добавить myViewOfInterest туда, где оно было (и какого размера оно было.).

...