NSRunningApplication没有特定的应用程序窗口

时间:2015-11-25 08:56:39

标签: objective-c cocoa nswindow nsrunningapplication

我希望我的应用程序知道当前正在运行的所有应用程序并在表格中显示。在表格中,它将显示所有正在运行的应用程序名称,并在每个应用程单击按钮,我们必须打开特定应用程序的窗口,即使它已最小化或关闭。由于NsRunningApplication对象没有任何窗口或视图,我通过以下代码获得正在运行的应用程序列表,但没有获取应用程序的窗口。有人可以帮帮我吗?

NSMutableArray* mOpendAppsArray = [[NSMutableArray alloc] init];
NSMutableArray* mOpenedAppsNamesArray = [[NSMutableArray alloc] init]; 
NSUInteger count = [[[NSWorkspace sharedWorkspace] runningApplications] count]; 
for (NSUInteger i = 0; i < count; i++) {
    NSRunningApplication *app = [[[NSWorkspace sharedWorkspace] runningApplications] objectAtIndex: i];

    if(app.activationPolicy == NSApplicationActivationPolicyRegular) {
        [mOpenedAppsNamesArray addObject:app.localizedName];
        [mOpendAppsArray addObject:app];
    }
}

1 个答案:

答案 0 :(得分:0)

如果除了本地化名称(我在表格中显示的内容)之外你还得到了应用程序的bundleID,你可以使用以下内容激活应用程序:

NSArray* apps = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.bla.blah"];
[(NSRunningApplication*)[apps objectAtIndex:0] activateWithOptions: NSApplicationActivateAllWindows];