You can add an observer to NSWorkspace.sharedWorkspace().notificationCenter to view the NSWorkspaceDidActivateApplicationNotification key. You specify a selector on one of your methods and grab information from the userInfo dictionary.
A simple example in AppDelegate:
Swift 2.2
func applicationDidFinishLaunching(notification: NSNotification) { NSWorkspace.sharedWorkspace().notificationCenter.addObserver(self, selector: #selector(activated), name: NSWorkspaceDidActivateApplicationNotification, object: nil) } func activated(notification: NSNotification) { if let info = notification.userInfo, app = info[NSWorkspaceApplicationKey], name = app.localizedName { print(name) } }
Swift 3
func applicationDidFinishLaunching(_ aNotification: Notification) { NSWorkspace.shared().notificationCenter.addObserver(self, selector: #selector(activated(_:)), name: NSNotification.Name.NSWorkspaceDidActivateApplication, object: nil) } func activated(_ notification: NSNotification) { if let info = notification.userInfo, let app = info[NSWorkspaceApplicationKey] as? NSRunningApplication, let name = app.localizedName { print(name) } }
source share