【swift】起動中のアプリケーション一覧を取得する【NSRunningApplication】
起動中のアプリケーションの中で、かつactiveなもの(最前面のもの)のアプリケーション名を取得した時のメモ。
起動中のアプリケーションを取得する方法がわからず、四苦八苦しました。
最初は「なんかmainWindowってそれっぽいな...」と思い以下のようなコードを試していました。
let anApplication = MyApplication.sharedApplication() NSLog(anApplication.mainWindow!.title!)
確かにこれでwindowの名前は取れたのですが、別のアプリケーションが最前面に居た際に
fatal error: unexpectedly found nil while unwrapping an Optional value
のエラーが出て、うまく取得できませんでした。
仕方がないのでいろいろ調べていたら
NSRunningApplicationクラスがあることを知り、それっぽいなと思って調べたところ
NSWorkspace.sharedWorkspace().runningApplicationsで現在起動中のアプリケーションが取得できることがわかりました。
なので以下のようなコードで起動中のアプリケーション一覧を取得することができました。
// 起動中のアプリケーション一覧を取得 let runningApps = NSWorkspace.sharedWorkspace().runningApplications for app in runningApps { // アクティブなものを出力 if app.active { print(app.localizedName!) } }
参考にさせていただいた記事qiita.com
developer.apple.com
- 作者: 荻原剛志
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/03/02
- メディア: Kindle版
- この商品を含むブログを見る