2

NSOpenGLView の上に NSView を表示しています。「setWantsLayer:YES」を使用して、NSView を強制的に opengl コンテキストに表示させています。しかし、ウィンドウを最小化して再度最小化すると、NSView は NSOpenGLView の上になくなります。

この動作を防ぐ方法はありますか?

4

1 に答える 1

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 の前に表示されます。

于 2014-06-11T12:51:15.523 に答える