2010-01-24 6 views
2

Quelle est la meilleure façon de stocker la position actuelle de la souris (à l'échelle du système), puis (plus tard) placer la souris à ce point enregistré?Comment stocker (et utiliser) la position actuelle de la souris?

[NSEvent mouseLocation] me obtient la position, et je peux déplacer la souris avec un CGEventMouseMoved, mais ils utilisent chacun un système de coordonnées différent (je crois y = 0 est le top pour NSEvent et le fond pour un CGEvent).

Je suis inquiet de la robustesse de saisir la hauteur de l'écran et de l'utiliser pour convertir entre les deux - ou est-ce la meilleure approche?

Répondre

0

Oui, l'utilisation de la hauteur de l'écran principal est la manière standard de basculer les coordonnées de l'écran.

+0

Savez-vous comment j'obtiens la résolution de l'écran de l'utilisateur pour inverser l'axe y? –

+0

Oui, voir les différentes méthodes de 'NSScreen'. –

+0

Super, merci pour votre aide. –

1

Vous pouvez utiliser un CGEventTap pour obtenir les événements de la souris au lieu de NSEvent. Ensuite, vous avez votre choix de flipped ou non flippé au moment où l'événement arrive.

(Je crois que y = 0 est le top pour NSEvent et le bas pour un CGEvent).

Vous avez cela à l'envers. Quartz utilise retourné, qui est y = 0 = haut. AppKit utilise unflipped, qui est y = 0 = bottom. (Edit: pour les événements, c'est-à-dire Quartz 2D, l'API de dessin, utilise des coordonnées non-floues, comme AppKit.)

+0

Mais le tapotement ne capture-t-il que les événements? Peut-être que je comprends mal. La souris peut être stationnaire (en fait sera probablement) quand je veux l'enclencher à une nouvelle position et revenir à nouveau. La nécessité de le faire n'est pas déterminée par un autre événement de clavier ou de souris, mais quelque chose qui arrive périodiquement. –

+0

Oh, donc vous ne surveillez pas les événements, mais vous obtenez et sauvegardez l'emplacement de la souris à un moment précis? Peu importe le robinet, alors. La partie sur les origines reste cependant. –

Questions connexes