Frage

Was ist der beste Weg, um die aktuelle Mausposition zu speichern (systemweit) und dann (später) bewegen Sie die Maus in diesem gespeicherten Punkt?

[NSEvent mouseLocation] wird mir die Position, und ich kann die Maus mit einem CGEventMouseMoved , aber sie jede Anwendung ein anderes Koordinatensystem (ich glaube, y = 0 ist die Spitze für NSEvent und der Boden für eine CGEvent).

Ich mache mir Sorgen um die Robustheit der Bildschirmhöhe Erfassung und Verwendung es zwischen den beiden zu konvertieren - oder ist dies der beste Ansatz

War es hilfreich?

Lösung

Ja, den Hauptbildschirm der Höhe verwendet, ist der normale Weg, Bildschirmkoordinaten von Spiegeln.

Andere Tipps

könnten Sie verwenden eine CGEventTap die bekommen Mausereignisse statt NSEvent. Dann haben Sie die Wahl von blätterte oder unflipped zum Zeitpunkt der Veranstaltung eintrifft.

  

(ich glaube, y = 0 ist die oberste für NSEvent und der Boden für eine CGEvent).

Sie haben, dass die falsche Art und Weise um. Quarz verwendet gekippt, die y = 0 = top ist. AppKit unflipped verwendet, worin Y = 0 = bottom. (Edit:.. Für Veranstaltungen, dh Quartz 2D, die Zeichnungs-API verwendet unflipped Koordinaten, die gleiche wie AppKit der Fall ist)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top