![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 ![]() |
Bonjour,
j'ai une NSView, et je voudrais changer le curseur quand l'utilisateur clique une fois (en maintenant son clic). Pour le moment j'utilise ça: CODE - (void)mouseDown:(NSEvent *)theEvent { if([theEvent clickCount] == 1) { [[NSCursor closedHandCursor] push]; } else if([theEvent clickCount] == 2) { /*...*/ } } - (void)mouseUp:(NSEvent *)theEvent { [NSCursor pop]; } Le problème c'est que quand l'utilisateur double-clique, le curseur closedHandCursor apparaît subrepticement au premier clic, ce qui n'est pas très joli... Y a-t-il un moyen d'éviter ça?? Merci d'avance, -- Arthur; -------------------- |
|
|
![]() |
![]()
Message
#2
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 ![]() |
En gros ça donne ça dans le mouseDown (ou mouseUp) :
CODE if([theEvent clickCount]<=1) clickTimer = [[NSTimer scheduledTimerWithTimeInterval:(double)GetDblTime()/60. target:self selector:@selector(simpleClick:) userInfo:theEvent repeats:NO] retain]; else { // Annuler et libérer le timer [clickTimer invalidate]; [clickTimer release]; clickTimer = nil; ... } Ca comporte un défaut... C'est que le clic accuse un retard de la durée du temps imparti pour le double-clic. Mais à priori c'est la seule solution puisque qu'au moment du clic, le programme ne peut pas deviner s'il va y en avoir un deuxième ou pas. (Et c'est pour cela qu'Apple ne l'a pas implémenté avec deux fonctions...) -------------------- I think therefore I Mac
|
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 11:20 |