Pergunta

Qual é a melhor maneira de armazenar a posição atual do mouse (sistema-amplo) e depois (mais tarde) coloque o mouse em que armazenados ponto?

[NSEvent mouseLocation] fica-me o cargo, e não pode mover o mouse com um CGEventMouseMoved, mas cada um usa um diferente coordena o sistema (acredito que y=0 é o topo para NSEvent e a inferior para um CGEvent).

Estou preocupado com a robustez de capturar a altura da tela e usá-lo para converter entre os dois - ou esta é a melhor abordagem?

Foi útil?

Solução

Sim, usando a tela principal da altura é a forma padrão de inversão de coordenadas de tela.

Outras dicas

Você poderia usar um Cgeventtap Para obter os eventos do mouse em vez de NSEVENT. Então você tem sua opção de invertido ou não vinculado no momento em que o evento chega.

(Eu acredito que y = 0 é o topo para o NSEVENT e o fundo para um CGEVENT).

Você tem isso da maneira errada. O quartzo usa invertido, que é y = 0 = topo. O Appkit usa não vinculado, que é y = 0 = inferior. (Editar: Para eventos, ou seja. Quartz 2d, a API de desenho, usa coordenadas não vinculadas, o mesmo que o Appkit.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top