2012-01-27 12 views
1

私は現在フルスクリーンを可能にするNSWindowを持っています。ウィンドウにはビデオプレーヤーとその下にプレイリストがあります。ユーザーが全画面表示になると、プレイリストを削除してビデオを表示するだけです。OS X Lion:フルスクリーンNSWindow Bait&Switch

私が最初に考えたのは、全画面エントリポイントを検出したときにウィンドウを取り替えることでした。

- (void)windowWillEnterFullScreen:(NSNotification *)notification 
{ 
    NSLog(@"My window is going fullscreen"); 
} 

しかし、私はこの時点で新しいもののために窓を交換する方法を見つけ出すことができなかった:私は、私は次のようにこれを検出できることを見出しました。私がまだ試みていない1つのオプションは、ビデオのサイズ変更フラグをすべて変更して他のコンポーネントを隠すことですが、これが最善の解決策であるかどうかはわかりません。

誰もがこれを行うためのより良い方法上の任意の提案を持っていますか?

+0

1つのアプローチについて同様の質問があります。http://stackoverflow.com/questions/9019178/osx-lion-different-views-in-fullscreen-and-in-windowed-mode – CRD

答えて

2

なぜウィンドウを交換しますか?ウィンドウ内のビューを操作するだけです。

-removeFromSuperviewでフルスクリーン表示されたときにプレイリストを削除してから、ビデオビューのサイズを変更してウィンドウをいっぱいにします。

ビューへの参照をある場所で保持するようにしてください。そうしないと、ビューが割り当て解除されるためです。ウィンドウがフルスクリーンモードを終了すると、その参照を使用してビューを元に戻すことができます。