Swift: 最後にActiveだったアプリを判別する

1 min読了の目安(約400字TECH技術記事
func checkLastActiveApp() {
    let lastAppIdentifier = NSWorkspace.shared.runningApplications.first { (app) -> Bool in
        return app.isActive
    }?.bundleIdentifier ?? ""
}

最後にActiveだったアプリが判別できると何が良いかというと、自分のアプリが常駐型で一時的に作業を中断して利用するようなタイプのものの場合、元のアプリにフォーカスを戻したいことがあり、それができる。

if let app = NSRunningApplication.runningApplications(withBundleIdentifier: lastAppIdentifier).first {
    app.activate(options: .activateIgnoringOtherApps)
}