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]:無法識別的選擇發送到實例...
關於如何修復它並檢查最前面的應用程序是否全屏的任何想法?或者還有其他替代方案來執行此操作嗎?
'runningApplications'數組是'NSRunningApplication'。 'presentationOptions'適用於'NSApplication',而不是'NSRunningApplication',所以這就是你得到錯誤的原因。不過,我不確定是否有辦法實現您的目標。 –
是的,沒錯。但我不知道任何其他方式將'NSRunningApplication'轉換爲'NSApplication'來檢查'presentationOptions':/ –