在deminimize窗口后,NSOpenglView出现在NSView前面

时间:2014-06-11 11:51:19

标签: macos nsopenglview

我在NSOpenGLView上显示了一个NSView。我正在使用' setWantsLayer:YES'强制NSView出现在opengl上下文中。但是当我最小化窗口并再次将其最小化时,NSView就不再是NSOpenGLView了。

有没有办法防止这种行为?

1 个答案:

答案 0 :(得分:2)

好的,我找到了解决这个问题的方法。不是最好的,但解决了这个问题。

首先,我在appDelegate类中声明了一个通知程序:

[[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(windowDidDeminiaturize:)
 name:NSWindowDidDeminiaturizeNotification object:nil];

此通知程序检测到窗口最小化事件。然后,在回调函数中,我这样做:

- (void)windowDidDeminiaturize:(NSNotification *)notification
{
    [view_PlaybackView setWantsLayer:NO];
    [view_PlaybackView setWantsLayer:YES];
}

视图再次显示在NSOpenGLView前面。