2015-03-27 6 views

ответ

3

Я думаю, что что-то вдоль этих линий должны помочь вам:

let apps = NSWorkspace().runningApplications 

for app in apps { 
      print("URL: \(app.executableURL!) App name: \(app.localizedName!)") 

      switch app.activationPolicy! { 
      case NSApplicationActivationPolicy.Regular: 
       println(" Normal app ") 
      case NSApplicationActivationPolicy.Accessory: 
       println(" Accessory app") 
      case NSApplicationActivationPolicy.Prohibited: 
       println(" backgound app") 
      default: 
       println("unknown") 
      } 
    } 

Просто проверьте олноправное приложение

Примечания: хотя мой ответ может быть понятнее, кто-то без достаточного воздействия функционального программирования, Leonardo's answer является более кратким и показывает, как использовать map & filter

3

Follow the Diego ' s ответ. Вы можете использовать фильтр и карту в совокупности, чтобы выполнить то, что хотите. Вы можете фильтровать свой массив с помощью activPolicy, и в верхней части этого вы можете сопоставить результат, чтобы извлекать имена ваших обычных запущенных приложений.

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]" 
Смежные вопросы