Wie konvertiere ich Cocoa co-ords von oben links == Ursprung nach unten links == Ursprung

8

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.

    
Steve McLeod 12.05.2009, 13:46
quelle

3 Antworten

10

Math ist ziemlich zuverlässig: -)

%Vor%

Die Hauptbildschirmhöhe ist

%Vor%     
Ilya Birman 12.05.2009, 13:58
quelle
4

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.

    
Mike Caron 12.05.2009 14:00
quelle
2

Probieren Sie so etwas aus ( von hier ):

%Vor%     
Naaff 12.05.2009 13:59
quelle

Tags und Links