当然.在您的app delegate类中,您可以使用NSWorkspace在应用程序变为活动状态(NSWorkspaceDidActivateApplicationNotification)或重新激活(NSWorkspaceDidDeactivateApplicationNotification)时收到通知.有关NSWorkspace详细信息,请参阅文档.
在你的控制器类中,你会做这样的事情:
- (id)init {
   if ((self = [super init])) {
       [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
                             selector:@selector(appDidActivate:)
                            name:NSWorkspaceDidActivateApplicationNotification
                              object:nil];
   }
   return self;
}
- (void)dealloc {
    [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self];
    [super dealloc];
}
- (void)appDidActivate:(NSNotification *)notification {
   NSDictionary *userInfo = [notification userInfo];
   NSLog(@"userInfo == %@", userInfo);
}
关键点基本上是您需要注册以接收如下所示的通知-init.您将重复代码,为您想要的每个附加通知名称添加另一个观察者(例如NSWorkspaceDidDeactivateApplicationNotification).
另一个要记住的重要事项是在-dealloc(或其他地方)将自己移除为观察者,这样NSWorkspace在释放+ dealloc'd(并且不再有效)之后不会尝试通知您的控制器对象.
在指定的-appDidActivate:方法中,使用有关应用程序的信息执行您需要的任何操作.