当Finder PID发生变化时获取通知

时间:2015-05-06 13:43:54

标签: macos pid finder

我只想在Finder.app PID发生变化时收到通知。 对于传统方法,我只是轮询以检查ID是否已更改。 我们没有任何其他方式可以进行民意调查。

注意:我尝试过使用NSNotificationCenter和NSWorkspaceDidLaunchApplicationNotification。它有效,但它也需要像NSRunLoop一样进行轮询。我想在没有任何投票方式的情况下收到通知。

- (void)appHasLaunched:(NSNotification *)notif
{
NSRunningApplication *runApp = [[notif userInfo] valueForKey:@"NSWorkspaceApplicationKey"];
  if ([runApp.bundleIdentifier isEqualToString:@"com.apple.finder"])
  {
    NSLog(@"start");
  }
}



    ws = [NSWorkspace sharedWorkspace];
    NSNotificationCenter *notifyCenter = [ws notificationCenter];
    [notifyCenter addObserver:self
                     selector:@selector(appHasLaunched:)
                         name:NSWorkspaceDidTerminateApplicationNotification 
                       object:nil];

上面的代码完美无缺,但需要循环才能进行连续观察 例如,

[[NSRunLoop currentRunLoop] run];

0 个答案:

没有答案