Cómo recuperar la aplicación OSX que actualmente recibe eventos clave
Estoy siguiendo eldocumentación de cacao para determinar la corrienteaplicación más frontal en OSX, también conocido como la aplicación que recibe eventos clave. Sin embargo, cuando ejecuto el siguiente swift, la API siempre me devuelve el mismo valor:XCode
, pero nunca cambia achrome
o cualquier otra aplicación cuando me cambio a ellas. También intenté ejecutar el programa compilado pero en lugar de mostrar constantementeXCode
ahora muestra la aplicación de terminal que estoy ejecutando.
¿Cuál es la forma correcta de determinar la aplicación que recibe los eventos clave de OSX? ¿Mi código a este respecto está roto?
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);
}