2

現在実行中のすべてのアプリをアプリケーションに認識させ、表に表示したいと考えています。テーブルには、実行中のすべてのアプリ名が表示され、各アプリの横にボタンが表示されます。ボタンをクリックすると、特定のアプリが最小化または閉じられていても、そのウィンドウを開く必要があります。次のコードで実行中のアプリのリストを取得しましたが、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];
    }
}
4

1 に答える 1

0

ローカライズされた名前に加えてアプリの bundleID を取得した場合 (テーブルに表示されているものだと思います)、次のようなものを使用してアプリをアクティブ化できます。

NSArray* apps = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.bla.blah"];
[(NSRunningApplication*)[apps objectAtIndex:0] activateWithOptions: NSApplicationActivateAllWindows];
于 2016-02-28T03:06:47.867 に答える