2

最前面のアプリケーションがフルスクリーンかどうかを知る必要があります。
これを確認する必要があるのは次のとおりです( でNSApplicationPresentationOptionsのみ機能するNSApplicationことはわかっていますが、 でそれを行う方法がわかりませんNSRunningApplication):

NSArray *activeApps = [[[NSWorkspace sharedWorkspace] runningApplications] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"isActive==YES && bundleIdentifier!=%@", MY_BUNDLE_IDENTIFIER]];
if ([activeApps count] > 0){
    NSApplicationPresentationOptions opts = [[activeApps objectAtIndex:0] presentationOptions];
    timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(setupPlayer) userInfo:nil repeats:YES];
    if (opts & NSApplicationPresentationFullScreen) {
        //Do something
    }    
}

したがって、コードを実行すると、明らかに次のエラーが発生し[activeApps objectAtIndex:0]ますNSRunningApplication

-[NSRunningApplication presentationOptions]: 認識されないセレクターがインスタンスに送信されました...

それを修正し、最前面のアプリケーションが全画面表示になっているかどうかを確認する方法についてのアイデアはありますか? または、これを実行する他の方法はありますか?

4

1 に答える 1

0

最前面のアプリケーションがフルスクリーンかどうかを確認するには、applescript を使用できます。

スクリプトは次のようになります。

1) 前面にあるアプリケーションの最前面ウィンドウを取得します。2) そのウィンドウの属性値「AXFullScreen」を取得します。

これにより、最前面のアプリがフルスクリーンかどうかがわかります。

それが役に立てば幸い !!!

于 2013-01-11T14:50:33.263 に答える