Xcode 过滤用户启动的应用程序(Mac OS X)

Xcode 过滤用户启动的应用程序(Mac OS X),xcode,macos,swift,filtering,Xcode,Macos,Swift,Filtering,NSWorkspace.runningApplications为我提供了所有正在运行的应用程序的完整列表,但我想过滤掉用户专门启动的应用程序。我怎样才能做到这一点呢?我认为以下几点可以帮助您: 让apps=NSWorkspace.runningApplications 应用程序中的应用程序{ printURL:\app.executableURL!应用程序名称:\app.localizedName! 切换app.activationPolicy{ 案例NSApplicationActivatio

NSWorkspace.runningApplications为我提供了所有正在运行的应用程序的完整列表,但我想过滤掉用户专门启动的应用程序。我怎样才能做到这一点呢?

我认为以下几点可以帮助您:

让apps=NSWorkspace.runningApplications 应用程序中的应用程序{ printURL:\app.executableURL!应用程序名称:\app.localizedName! 切换app.activationPolicy{ 案例NSApplicationActivationPolicy。常规:
println Normal app我认为以下几点应该对您有所帮助:

让apps=NSWorkspace.runningApplications 应用程序中的应用程序{ printURL:\app.executableURL!应用程序名称:\app.localizedName! 切换app.activationPolicy{ 案例NSApplicationActivationPolicy。常规:
println Normal app根据Diego的回答,你可以使用filter和map来完成你想要的。你可以使用activationPolicy筛选你的数组,最重要的是,你可以映射结果来提取你经常运行的应用程序的名称

let regularApps = NSWorkspace().runningApplications.filter{$0.activationPolicy == NSApplicationActivationPolicy.Regular}.map{$0.localizedName!!}

println(regularApps.description) // "[Finder, Mail, Messages, Preview, Skype, iOS Simulator, iTunes, Photos, Safari, TextEdit, iBooks, System Preferences, QuickTime Player, App Store, Disk Speed Test, Xcode]"

根据Diego的回答,您可以结合使用filter和map来完成您想要的功能。您可以使用activationPolicy筛选阵列,除此之外,您还可以映射结果以提取定期运行的应用程序的名称

let regularApps = NSWorkspace().runningApplications.filter{$0.activationPolicy == NSApplicationActivationPolicy.Regular}.map{$0.localizedName!!}

println(regularApps.description) // "[Finder, Mail, Messages, Preview, Skype, iOS Simulator, iTunes, Photos, Safari, TextEdit, iBooks, System Preferences, QuickTime Player, App Store, Disk Speed Test, Xcode]"