Ich benutze CGWindowListCopyWindowInfo, um eine Liste aller Fenster zu erhalten. Es gibt mir die Koordinaten jedes Fensters basierend auf dem Ursprung, der oben links des Bildschirms ist.
Wenn ich die setFrame-Methode von NSWindow verwende, sind die Koordinaten basierend auf dem Ursprung unten links des Bildschirms.
Was ist eine saubere, zuverlässige Möglichkeit, von einem zum anderen zu konvertieren?
Hinzugefügt: Mit sauber und zuverlässig, ich meine, etwas sicher zu arbeiten, unabhängig davon, ob der Benutzer mehrere Bildschirme hat oder Spaces verwendet. Ich denke, dass es ein bekanntes Idiom geben muss, das Bibliotheks-APIs verwendet.
Math ist ziemlich zuverlässig: -)
%Vor%Die Hauptbildschirmhöhe ist
%Vor%Ich würde vorschlagen, eine NSAffineTransform zu verwenden. Wenn Sie in Bezug auf den Standardursprung zeichnen und dann eine Transformation auf die Ansicht anwenden, können Sie die Dinge auf einen Schlag umkehren.
Tags und Links objective-c cocoa nswindow