Changer de curseur : problème avec mouseDragged et scrollWheel
Philippe49
Membre
Changement de curseur avec mouseDown et mouseUp : impeccable
Changement de curseur avec mouseEntered et mouseExited : impeccable
Mais avec mouseDragged ou scrollWheel, le curseur repasse en mode flèche. Elle est où l'astuce ?
<br />-(void) mouseDown : (NSEvent*) event {<br /> [[NSCursor closedHandCursor] push];<br />}<br />-(void) mouseUp:(NSEvent *) event {<br /> [[NSCursor closedHandCursor] pop];<br />}<br />
Changement de curseur avec mouseEntered et mouseExited : impeccable
<br />-(void) mouseEntered : (NSEvent*) event {<br /> [[NSCursor openHandCursor] push];<br />}<br />-(void) mouseExited : (NSEvent*) event {<br /> [[NSCursor openHandCursor] pop];<br />}
Mais avec mouseDragged ou scrollWheel, le curseur repasse en mode flèche. Elle est où l'astuce ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Quel équivalent du mouseUp a-t-on pour scroolWheel? C'est à dire comment détecter la fin d'un scroll wheel ?
Pour le scroll well, tu peux imaginer un truc du type (pour rester dans l'esprit de ton code précédent) :
Mais il faut que j'avoue trouver assez lourd l'appel répété à invalidateCursorRectsForView: dans le mouseMoved: . Je mettrais alors un test (ou, ce que je trouve encore plus propre, un booléen que l'on met à YES ou NO selon que l'on ait besoin ou non de la main fermée) :
Il faut juste que tu vérifies que le test fonctionne bien (il se peut que [NSCursor openHandCursor] ne soit pas un singleton auquel cas le test ne fonctionnera pas et tu seras alors obligé de repasser pas le booléen dont j'ai parlé plus haut)
Bien vu ! Comme ce n'est pas un singleton, je passe par un booléen.