at_yasu's blog

ロード的なことを

NSView で FullScreen (全画面)

Leopard (Mac OS 10.5以上) だけでしかできないぽいです。


やっている事は簡単で、全画面にするNSViewに、enterFullScreenMode:withOptions: を投げてやるだけです。

以下のは、Escキーを押したら全画面/window画面に切り替わるという品物。

- (void) keyUp :(NSEvent*)event
{
    NSLog(@"MyMovieView::KeyUp: %@",event);
    
    if ([event keyCode] == 53) // 53 is ESC
    {
        NSArray *objectArray = [NSArray arrayWithObjects:[NSNumber numberWithBool:!_isFullScreen],nil];
        NSArray *keyArray    = [NSArray arrayWithObjects:NSFullScreenModeAllScreens,nil];
        NSDictionary *fullScreenDict = [NSDictionary dictionaryWithObjects:objectArray
                                                                   forKeys:keyArray];
        
        if (_isFullScreen)
        {
            // フルスクリーンから、ウィンドウに戻す
            [self exitFullScreenModeWithOptions:fullScreenDict];
            _isFullScreen = NO;
        }
        else
        {
            _isFullScreen = [self enterFullScreenMode:[NSScreen mainScreen]
                                          withOptions:fullScreenDict];
        }
    }
    else
        [super keyUp:event];
}


以下のは検証に作った、サンプル品。動画Viewerでwindow内に動画ファイルをドラッグ&ドロップすれば動画が読み込まれ、下の三角矢印で再生します。

アルゴリズム ハッシュ値
md5 e3e05567767413733b296317854e51bd FullScreenQT.tar.bz2
Shasum 42da7f315b08cd60f1c57180bb07840c59ffa0d3 FullScreenQT.tar.bz2

ソースコードとソフト下記のリンクから。ソフトは、展開して出来たディレクトリの下にある、FullScreenQT.app です。

FullScreenQT.tar.bz2をダウンロード