Domanda

Qual è il modo migliore per conservare la posizione del mouse corrente (a livello di sistema) e poi (in seguito) mettere il topo a quel punto memorizzato?

[NSEvent mouseLocation] mi viene la posizione, e posso muovere il mouse con un CGEventMouseMoved , ma ognuno di loro utilizzano un sistema di coordinate diverso (credo y = 0 è il top per NSEvent e fondo per una CGEvent).

Sono preoccupato per la robustezza di catturare l'altezza dello schermo e di utilizzarlo per la conversione tra i due - o è questo l'approccio migliore

?
È stato utile?

Soluzione

Sì, utilizzando l'altezza della schermata principale è il modo standard di lanciare coordinate dello schermo.

Altri suggerimenti

È possibile utilizzare un CGEventTap per ottenere il eventi del mouse al posto di NSEvent. Allora avete la vostra scelta di capovolte o non ruotati al momento l'evento arriva.

  

(Credo y = 0 è il top per NSEvent e fondo per una CGEvent).

Hai che nel modo sbagliato. Quarzo utilizza capovolto, che è y = 0 = alto. AppKit utilizza non ruotati, che è y = 0 = inferiore. (Edit:.. Per gli eventi, che è Quartz 2D, l'API di disegno, utilizza coordinate non ruotato, lo stesso fa AppKit)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top