14

[NSApplication presentationOptions]が含まれているかどうかを確認する必要があると思いますNSFullScreenModeApplicationPresentationOptionsが、どうすればそれを達成できますか?

編集:[NSApplication presentationOptions]私のドキュメントベースのアプリでは、フルスクリーンのドキュメントとそうでないドキュメントがあるため、使用は機能しません。私は今、別の解決策を探しています。と呼ばれるプロパティがないのはなぜだろうと思って[NSWindow isFullscreen]います。

4

4 に答える 4

31

私は自分で解決策を探していました.Matthieuの答えに基づいて、NSWindowでうまく機能するカテゴリを作成しました.

@interface NSWindow (FullScreen)

- (BOOL)mn_isFullScreen;

@end

@implementation NSWindow (FullScreen)

- (BOOL)mn_isFullScreen
{
    return (([self styleMask] & NSFullScreenWindowMask) == NSFullScreenWindowMask);
}

@end
于 2011-08-10T12:02:03.740 に答える
11

そのオプションが使用されていることをテストするには、&ビット演算子を使用する必要があります。テストされていませんが、おそらく次のようなものです。

- (BOOL) inFullScreenMode {
    NSApplicationPresentationOptions opts = [[NSApplication sharedApplication ] presentationOptions];
    if ( opts & NSApplicationPresentationFullScreen) {
       return YES;
    }
    return NO;
}

ウィンドウのいずれかがフルスクリーンモードになっているかどうかを確認するには、ウィンドウのスタイルマスクを確認するだけです。

NSUInteger masks = [someNSWindow styleMask]
if ( masks & NSFullScreenWindowMask) {
 // Do something
}
于 2011-07-25T12:30:45.297 に答える