2012-01-26 28 views
1

我试图使全屏模式切换后,窗口中包含的某个视图变为主内容视图,并且返回仅占用部分视图当用户离开全屏模式时的窗口。OSX Lion:在全屏和窗口模式下的不同视图

我已经想出了以下内容:

- (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

一个视图一次只能是另一个视图的子视图。当您将其设置为窗口的contentView时,您的myViewOfInterest作为oldView的子视图(的视图层次结构)被删除。当您稍后恢复oldView时,您需要将myViewOfInterest添加回原来的位置(以及它的大小等)。