您可以使用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:
方法中,根據所需的應用程序信息做任何你需要的操作。