如何检查最前面的应用程序是否全屏?

时间:2013-01-02 00:40:03

标签: objective-c xcode macos cocoa fullscreen

我需要知道最前面的应用程序是否全屏显示 以下是我必须检查的内容(我知道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]:无法识别的选择器发送到实例...

有关如何修复它并检查最前面的应用程序是否全屏的任何想法?或者还有其他替代方法可以执行此操作吗?

1 个答案:

答案 0 :(得分:0)

您可以使用applescript检查最前面的应用程序是否全屏。

脚本可以像,

1)获取前面的应用程序的最前面的窗口。 2)获取属性值" AXFullScreen"那个窗口。

这会告诉您最前面的应用是否全屏。'

希望它能帮助!!!