1

特定のアプリケーション (起動されている場合) にフォーカスするプログラムを作成しようとしています。これが私のコードです:

#import <Cocoa/Cocoa.h>
#import <stdio.h>

int main() {
  // activate Firefox
  NSArray *apps = [NSRunningApplication runningApplicationsWithBundleIdentifier: @"org.mozilla.firefox"];

  if ([apps count] == 0) {
    printf("no matching app\n");
    return 1;
  }

  if (![apps[0] activateWithOptions: NSApplicationActivateAllWindows]) {
    printf("failed to activate\n");
    return 1;
  }

  return 0;
}

これを実行すると、「アクティブ化に失敗しました」と出力され、Firefox がフォーカスされません。私は何を間違っていますか?

4

1 に答える 1

5

NSApplicationActivateIgnoringOtherApps 修飾子を使用してアクティブ化するだけです。正常に動作しています。

さらに、 activateWithOptions: メソッドには次の注意事項があります。

アプリケーションが終了した場合、またはアクティブ化できるタイプのアプリケーションでない場合、このメソッドは NO を返します。

于 2015-08-05T18:41:22.400 に答える