2011-01-03 26 views
2

私が作成したmyWindowを見ることができません。私が[myWindow isVisible]の場合は1を返します。 CGDisplayCaptureは、スクリーンを空白にするので問題ありません。私はNSWindow initメソッドに渡すすべての変数をチェックしました。2次ディスプレイのココア全画面ウィンドウ

本当に明白なものがありませんか?ここでは、コードがあります:あなたはそれ全画面表示にしない場合

// Find the screen we want 
NSScreen *screen    = [[NSScreen screens] objectAtIndex:1]; 
NSNumber *displayID    = [[screen deviceDescription] 
            objectForKey:@"NSScreenNumber"]; 
CGDirectDisplayID CGDisplayID = (CGDirectDisplayID) [displayID intValue]; 

// Capture the secondary display 
if (CGDisplayCapture(CGDisplayID) != kCGErrorSuccess) { 
    NSLog(@"Couldn't capture the secondary display"); 
} 

// Draw a new window to fill the screen 
NSRect screenRect = [screen frame]; 
NSWindow *myWindow = [[NSWindow alloc] initWithContentRect:screenRect 
               styleMask:NSBorderlessWindowMask 
               backing:NSBackingStoreBuffered 
                defer:NO 
                screen:screen]; 

// Set the level of the new window and other settings 
NSInteger windowLevel = CGShieldingWindowLevel(); 
[myWindow setLevel: windowLevel]; 
[myWindow setBackgroundColor:[NSColor blueColor]]; 
[myWindow makeKeyAndOrderFront:nil]; 

乾杯

答えて

1

このウィンドウには、どのようなものが見えますか?

作成しているウィンドウにビューを追加することはありません。ウィンドウのコンテンツビューがNSViewインスタンスの場合は、描画を実行しません。

+0

'[[NSWindow alloc ] init]; '少し青い窓が現れます。だから、おそらくそれはそのメソッドの何かですが、 'NSLog'を使ってチェックしているので' screenRect'と 'screen'はOKです。 – jdelaune

+0

私はあなたがやっているようにフルスクリーンのウィンドウを作る必要があったので、長い時間が経ちました。 -enterFullScreenMode:withOptions:あなたが描画しようとしているものを含むビューに送信するだけではない理由がいくつかありますか? – NSResponder

+0

とにかくウィンドウを作成してビューを含む必要があるとは思わないが、ウィンドウなしでフルスクリーン表示を行うことはできないのだろうか?私は '[NSScreen mainScreen]'を画面のパラメータに渡しました。なぜなら、NSScreenがメインスクリーンを使って送信している理由が分からない理由を理解する必要があるからです。 。それが動作しない場合は、私はビューソリューションを試してみましょう。ご協力いただきありがとうございます。 – jdelaune

3

あなたが10.5以上、を必要とすることができた場合してください使用のNSViewの-enterFullScreenMode:withOptions:と一致-exitFullScreenModeWithOptions :.これは適切にコンテナビュー(独自の複雑なサブビューセットを持つことができます)に適切に移り、ウィンドウレベルなどを手作業で混乱させるような問題から解放します。

関連する問題