schließen, aber ich bin nicht neu in der Programmierung. Ich versuche eine immer laufende Menüleiste App auf ein bestimmtes Fenster in einer Anwendung zu hören, um geöffnet zu werden und dann dieses Fenster zu schließen, aber nicht die Anwendung. Hier ist mein aktueller Ansatz, es ist meist eine Mischung aus anderen SO Antworten, die ich gefunden habe.Fenster auf der Basis von kCGWindowName Wert
func applicationDidFinishLaunching(aNotification: NSNotification) {
// listener for when user switches applications
NSWorkspace.sharedWorkspace().notificationCenter.addObserver(self,
selector: #selector(activated),
name: NSWorkspaceDidActivateApplicationNotification,
object: nil)
}
func activated(notification: NSNotification) {
// i feel like i should be using that NSNotification but I'm not
let options = CGWindowListOption(arrayLiteral: CGWindowListOption.ExcludeDesktopElements, CGWindowListOption.OptionOnScreenOnly)
let windowListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0))
let infoList = windowListInfo as NSArray? as? [[String: AnyObject]]
for item in infoList! {
// if i find the window i want to close
if item[kCGWindowName as String] == "Warnings" {
// close window item[kCGWindowName]
}
}
Meine Frage ist, wenn ich noch etwas von diesem Recht tue, wie schließe ich das Fenster basierte weg von seiner windowListInfo zu haben?
Auch die item[kCGWindowName as String]
sagt Cannot convert value of type 'AnyObject?' to expected argument type String.
Wie würde ich gehen über die Überprüfung von Fenstern für den Namen, den ich möchte, ohne auf eine Zeichenfolge zu werfen? Ich habe print() für alle Objekte in der InfoList aufgerufen und einen kCGWindowName-Wert mit dem Namen des Fensters, nach dem ich suche, gesehen, also weiß ich, dass es dort ist.
Vielen Dank im Voraus.
gibt es keine einfache Möglichkeit, dies zu tun.Ihre beste Wette wäre wahrscheinlich, die Accessibility-APIs anstelle von CGWindowList zu verwenden. –
Danke für das Feedback @KenThomases. Macht es Ihnen etwas aus, mir in die richtige Richtung zu zeigen oder mir ein paar Tipps zur Accessibility API zu geben? Ich habe es noch nie zuvor benutzt. –