メニューバーアプリとして作成したいのですが、もう作成しました。また、実行中のアプリケーションを追跡したいと思います。
NSRunningApplicationメソッドは、実行中のすべてのアプリケーションを返します。しかし、現在アクティブ化されている唯一のアプリケーションを検出したいと思います。(マウスクリックまたはコマンド+タブで...)どうすればそれを見つけることができますか?
私は以下のコードを作成しました:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(performTimerBasedUpdate) userInfo:nil repeats:YES];
}
- (void)performTimerBasedUpdate {
nowRunning = [NSRunningApplication currentApplication];
nowRunningName = [nowRunning localizedName];
}
ただし、自分で作成したアプリケーション名(自分)を返します。
- 答えた
私はついに答えを見つけました:ありがとうi-blis。フィルタを使用してアクティブ化されたアプリケーションを取得できます。isActiveプロパティについて知りませんでした!
runningApplications_ = [[NSWorkspace sharedWorkspace] runningApplications];
nowRunning = [[runningApplications_ filteredArrayUsingPredicate:isActive] objectAtIndex:0];
bundleIdentifier_ = [nowRunning bundleIdentifier];
localizedName = [nowRunning localizedName];