1

ビデオと画像のスライド ショーを表示する Cocoa アプリケーションを作成しています。複数の画面が (Mac Mini などに) 接続されている場合、各画面に異なるコンテンツを表示したいと考えています。各 NSWindow は、各 NSScreen で全画面表示にする必要があります。

これを OSX 10.8 で開発するとき、各 NSWindow フレームを NSBorderlessWindowMask で NSScreen フレームに設定しました。NSApplication で NSApplicationPresentationFullScreen を明示的に使用せず、NSApplicationPresentationHideDock と NSApplicationPresentationAutoHideMenuBar を使用しました。

このアプローチにはいくつかの問題があるようです。一部の OSX イベントにより、メニュー バーが強制的に表示され、ウィンドウが永久に下に移動するようです。

OSX Mavericks が全画面サポートを更新した今、これに対するより良いアプローチはありますか? NSApplication を真のフルスクリーン モードで開き、各 NSScreen に個別の NSWindow を強制することはできますか?

ありがとうございました。

4

1 に答える 1

3

画面ごとに1 つインスタンス化NSWindowし、フルスクリーンに切り替える ことができます。

[self.windowA setFrame:[[[NSScreen screens] firstObject] visibleFrame] display:NO];
[self.windowB setFrame:[[[NSScreen screens] lastObject] visibleFrame] display:NO];
[self.windowA toggleFullScreen:nil];
[self.windowB toggleFullScreen:nil];
于 2014-02-26T12:50:04.230 に答える