🍁

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

2020/11/17に公開
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)
}

Discussion