Comment puis-je obtenir une liste de toutes les fenêtres, actuellement à l'écran, dans swift? (Tous les exemples sont précédés d'import Cocoa
)Comment puis-je obtenir une liste de toutes les fenêtres, actuellement à l'écran, dans swift?
Je peux en objective-c exécuter le code suivant avec succès:
CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
Mais quand je lance l'équivalent en rapide (en utilisant le terrain de jeu pour tester) :
let windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kcGNullWindowID)
Je reçois une erreur me disant que j'ai un Use of unresolved identifier 'kcGNullWindowID'
.
Après avoir joué avec l'aide de la quartz documentation pendant un certain temps, je l'ai appris à:
let windowList = CGWindowListCopyWindowInfo(CGWindowListOption(kCGWindowListOptionOnScreenOnly), CGWindowListOption(0))
Mais il ne fonctionne toujours pas comme je reçois un objet {__NSArrayM}
, que je ne sais pas comment accéder . Suis-je sur la bonne voie ou suis-je en train de faire quelque chose de fondamentalement faux?
C'est un NSMutableArray. – CrimsonChris
La version d'objc, le thread 'CGWindowListCopyWindowInfo' est-il sûr? Ou doit-il fonctionner à partir du thread principal? – Noitidart