IPB

Bienvenue invité ( Connexion | Inscription )

> Changement de curseur sur un clic maintenu, dans une NSView
Options
Arty
posté 17 Jan 2006, 13:39
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;


--------------------
MacBook Pro 15" Core [email protected]
Mac OS 10.9.3
iPhone 5 - 32 Go Black
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
schlum
posté 17 Jan 2006, 13:59
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          
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 18th July 2025 - 11:20