我想將我的應用程序作爲菜單欄應用程序,並且已經制作好了。 而且我想跟蹤哪些應用程序正在運行。如何檢測在OSX上運行的應用程序
NSRunningApplication方法返回所有runnng應用程序。 但我想要檢測現在唯一被激活的應用程序。 (用鼠標點擊或命令+選項卡...) 我怎樣才能找到?
我做了下面的代碼:
- (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];
}
但是,它返回一個我做的應用程序名稱(個體經營)。
- 回答
我終於找到了答案:謝謝你,我,BLIS。 我可以通過過濾器獲得激活的應用程序。 我不知道isActive屬性!
runningApplications_ = [[NSWorkspace sharedWorkspace] runningApplications];
nowRunning = [[runningApplications_ filteredArrayUsingPredicate:isActive] objectAtIndex:0];
bundleIdentifier_ = [nowRunning bundleIdentifier];
localizedName = [nowRunning localizedName];
您是指用戶正在使用的應用程序? 「 – self
」NSRunningApplication方法返回所有runnng應用程序,但我想檢測正在運行的應用程序。「 - 讓我感到困惑。 – sosborn
我們可以看到一些代碼嗎? – self