Как получить приложение OSX, которое в данный момент получает ключевые события
Я следую закакао документация определить текущийсамое переднее приложение в OSX - иначе приложение, которое получает ключевые события. Однако, когда я выполняю следующий swift, API всегда возвращает мне одно и то же значение -XCode
, но это никогда не меняется наchrome
или любое другое приложение, когда я переключаюсь на них. Я также пытался выполнить скомпилированную программу, но вместо того, чтобы постоянно показыватьXCode
теперь он показывает, какое терминальное приложение я запускаю.
Как правильно определить приложение, которое получает ключевые события от OSX? Мой код в этом отношении нарушен?
import Cocoa
func getActiveApplication() -> String{
// Return the localized name of the currently active application
let ws = NSWorkspace.sharedWorkspace()
let frontApp = ws.frontmostApplication
return frontApp.localizedName
}
var frontMostApp : String
while true {
frontMostApp = getActiveApplication();
NSLog("front app: %@", frontMostApp)
sleep(1);
}