从cmd + tab获取ProcessList

时间:2013-04-29 20:12:47

标签: objective-c macos cocoa applescript applescript-objc

我想从OS X中的cmd + tab菜单中获取应用程序。我现在最好的方法是将其与AppleScript调用相关联,并使用以下内容:

NSDictionary *errorDict;
NSAppleEventDescriptor *returnValue;
NSString *appleScriptText = @"tell application \"System Events\" to get name of (processes where background only is false)";
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:appleScriptText];

然后遍历从它返回的东西,并将其与[[NSWorkspace sharedWorkspace] runningApplications]匹配,但这似乎有点太奇怪,无法完成此任务。

所以我的问题在这里:有没有像这样的方式那么古怪?

我的答案非常紧张。

1 个答案:

答案 0 :(得分:3)

鉴于您已经熟悉-[NSWorkspace runningApplications],为什么不迭代这些并检查哪些符合您的标准? background only属性对应NSRunningApplication的{​​{1}}属性不是activationPolicy

所以,像(未经测试):

NSApplicationActivationPolicyRegular