🍁

Swift: 任意のアプリが終了したことを検知する

2022/08/21に公開

macOSアプリで、任意の外部アプリが終了したことを検知したかった。

var cancelabbles = Set<AnyCancellable>()

NSWorkspace.shared.notificationCenter
    .publisher(for: NSWorkspace.didTerminateApplicationNotification)
    .sink { notification in
        if let _app = notification.userInfo?[NSWorkspace.applicationUserInfoKey],
           let app = _app as? NSRunningApplication,
           app.bundleIdentifier == "任意のアプリのBundle Identifier" {
            // 任意のアプリが終了した際の処理
        }
    }
    .store(in: &cancellables)

Discussion

ログインするとコメントできます