So rufen Sie die OSX-Anwendung ab, die aktuell wichtige Ereignisse empfängt

Ich folge demcocoa documentation um das aktuelle @ zu bestimmfront meiste Anwendung in OSX - auch bekannt als die Anwendung, die wichtige Ereignisse empfängt. Wenn ich jedoch den folgenden Befehl ausführe, gibt die API immer den gleichen Wert zurück -XCode, aber es ändert sich nie zuchrome oder eine andere Anwendung, wenn ich zu ihnen wechsle. Ich habe auch versucht, das kompilierte Programm auszuführen, aber anstatt ständig @ anzuzeigXCode Es zeigt jetzt die Terminal-App, die ich verwende.

Was ist die richtige Methode zum Ermitteln der Anwendung, die die wichtigsten Ereignisse von OSX empfängt? Ist mein Code in dieser Hinsicht kaputt?

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);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage