我需要知道最前面的应用程序是否处于全屏模式。
这是我必须检查的内容(我知道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,显然会出现以下错误:


  -[NSRunningApplicationpresentationOptions]:无法识别的选择器已发送到实例...


关于如何修复它以及检查最前面的应用程序是否处于全屏状态的任何想法?还是有其他选择可以执行此操作?

最佳答案

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

脚本可以像

1)获取应用程序最前面的窗口。
2)获取该窗口的属性值“ AXFullScreen”。

这会让您知道最前面的应用程序是否全屏显示。”

希望能帮助到你 !!!

07-24 21:47