Я хочу сделать свое приложение приложением в строке меню, и я уже сделал это. А также я хочу отслеживать, какое приложение запущено.
Метод 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];