当其他应用程序打开或退出时,或者当不同的窗口(监听应用程序或其他应用程序)被带到最前面时,有什么方法可以让 cocoa 应用程序收到通知吗?
最佳答案
您可以将观察者添加到共享工作区通知中心:
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserverForName:NSWorkspaceDidActivateApplicationNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *note) {
NSRunningApplication *frontmostApplication = [[note userInfo] objectForKey:NSWorkspaceApplicationKey];
}];
// from NSWorkspace.h
APPKIT_EXTERN NSString * NSWorkspaceWillLaunchApplicationNotification; // see above
APPKIT_EXTERN NSString * NSWorkspaceDidLaunchApplicationNotification; // see above
APPKIT_EXTERN NSString * NSWorkspaceDidTerminateApplicationNotification; // see above
APPKIT_EXTERN NSString * const NSWorkspaceDidHideApplicationNotification NS_AVAILABLE_MAC(10_6);
APPKIT_EXTERN NSString * const NSWorkspaceDidUnhideApplicationNotification NS_AVAILABLE_MAC(10_6);
APPKIT_EXTERN NSString * const NSWorkspaceDidActivateApplicationNotification NS_AVAILABLE_MAC(10_6);
APPKIT_EXTERN NSString * const NSWorkspaceDidDeactivateApplicationNotification NS_AVAILABLE_MAC(10_6);
关于macos - OS X 在应用程序打开、退出和更改焦点时发出通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17410798/