![]() |
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 ![]() |
Ca revient au problème de différencier un simple clic d'un double clic (quand on ne veut pas qu'un double clic fasse celle d'un simple clic avant celle du double) si j'ai bien compris.
La solution n'est pas du tout évidente... Il faut créer un NSTimer qui va lancer l'action du simple clic après le temps imparti laissé pour un double clic et invalider ce timer en cas de double clic. Je sais pas si c'est très compréhensible ce que je dis ![]() -------------------- I think therefore I Mac
|
|
|
![]()
Message
#3
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 ![]() |
Si si, c'est clair, mais c'est vraiment la merde
![]() Je trouve con qu'Apple n'est pas fait une méthode du style mouseDoubleClicked:, d'autant plus que la vitesse du double-clic est réglée dans les préférences système "Souris & Clavier"... -------------------- |
|
|
![]()
Message
#4
|
|
![]() 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
|
|
|
![]()
Message
#5
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 ![]() |
Le code marche très bien. Je ne connaissais pas la fonction GetDblTime(). Merci.
-------------------- |
|
|
![]()
Message
#6
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 ![]() |
CITATION(Arty @ 17 Jan 2006, 14:48) [snapback]1513153[/snapback] Le code marche très bien. Je ne connaissais pas la fonction GetDblTime(). Merci. Pas de quoi ![]() ![]() (je crois que GetDblTime() est un appel Carbon) -------------------- I think therefore I Mac
|
|
|
![]()
Message
#7
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 ![]() |
Petite question qui n'a rien à voir, pas simple curiosité: toi qui a l'air de programmer pas mal avec Objective-C/Cocoa, tu fais quoi comme genre d'application?
(effectivement GetDblTime() est dans le framework Carbon) -------------------- |
|
|
![]()
Message
#8
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 ![]() |
CITATION(Arty @ 17 Jan 2006, 15:39) [snapback]1513242[/snapback] Petite question qui n'a rien à voir, pas simple curiosité: toi qui a l'air de programmer pas mal avec Objective-C/Cocoa, tu fais quoi comme genre d'application? (effectivement GetDblTime() est dans le framework Carbon) Des IAs de jeux avec IHM surtout... Pour l'instant je suis sur un gros projet de Sudoku (mais chut, secret ![]() -------------------- I think therefore I Mac
|
|
|
![]()
Message
#9
|
|
![]() Macbidouilleur de vermeil ! ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 484 Inscrit : 16 Nov 2005 Lieu : Metz Membre no 50 011 ![]() |
CITATION(schlum @ 17 Jan 2006, 15:42) [snapback]1513247[/snapback] Des IAs de jeux avec IHM surtout... Pour l'instant je suis sur un gros projet de Sudoku (mais chut, secret ![]() Va falloir potasser du Knuth alors ![]() -------------------- Mac Mini Late 2012 Core i7 2,6 GHz, 16 Go RAM, disque dur Fusion Drive 1 To, Mac OS Mojave 10.14.6, Western Digital Red 2 To dans un dock Storeva DriveDock U3 USB 3.0 pour Time Machine
Les jeux-vidéo, c'est comme l'amour. Le plaisir solitaire c'est bien, mais à deux c'est mieux |
|
|
![]()
Message
#10
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 ![]() |
CITATION(schlum @ 17 Jan 2006, 17:42) [snapback]1513247[/snapback] Pour l'instant je suis sur un gros projet de Sudoku (mais chut, secret ![]() Lol, énorme, j'ai écrit un petit programme pour les générer il y a quelques temps... le seul problème c'est que ça générait la table complète, mais ça me disait pas lesquels enlever pour que ce soit jouable ![]() ![]() -------------------- |
|
|
![]()
Message
#11
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 ![]() |
Puisque ça a l'air de vous intéresser, je veux bien vous montrer où j'en suis
![]() Attention, c'est même pas une version alpha encore ![]() http://cschlum2.free.fr/SudokuX.dmg -------------------- I think therefore I Mac
|
|
|
![]()
Message
#12
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 599 Inscrit : 20 Sep 2003 Membre no 9 702 ![]() |
Sympa! L'interface est très jolie!
-------------------- |
|
|
![]()
Message
#13
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 ![]() |
PS : cherchez pas pour les intersections, c'est pas encore implémenté
![]() Ensuite y aura les wings et autres fishy cycles, nishios, chaînes de forces, paires conjuguées etc. + Le moteur undo / redo à implémenter + Un format de fichier à définir + Les préférences générales de l'appli + Le solveur de force brut (avec gestion des erreurs de l'utilisateur) + L'aide à faire (ou pas ![]() + D'autres bricoles que j'ai en tête (chrono, sauvegarde d'états en cours etc.) Bref, j'ai encore du boulot ![]() PS 2 : Apparemment le nib document ne fonctionne pas sous 10.3 ![]() PS 3 : On peut éditer les cases sans possibilité ou les cases initiales avec le double-clic ![]() PS 4 : C'est assez inspiré de "Sudoku Susser" mais je trouvais celui-ci pas très pratique à l'utilisation (bien que très "pro") -------------------- I think therefore I Mac
|
|
|
![]()
Message
#14
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 ![]() |
J'ai enlevé les incompatibilités du .nib pour 10.3... Si quelqu'un peut tester (j'en ai pas sous la main là).
Mais j'ai bien peur que l'incompatibilité soit à un niveau plus élevé. ![]() -------------------- I think therefore I Mac
|
|
|
![]()
Message
#15
|
|
![]() Macbidouilleur de vermeil ! ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 484 Inscrit : 16 Nov 2005 Lieu : Metz Membre no 50 011 ![]() |
Va falloir que tu nous fasses un jeu de Sudoku digne de ce nom, car on fait grise mine sous OS X face à Linux et son KSudoku.
Tu saurais en faire autant ? -------------------- Mac Mini Late 2012 Core i7 2,6 GHz, 16 Go RAM, disque dur Fusion Drive 1 To, Mac OS Mojave 10.14.6, Western Digital Red 2 To dans un dock Storeva DriveDock U3 USB 3.0 pour Time Machine
Les jeux-vidéo, c'est comme l'amour. Le plaisir solitaire c'est bien, mais à deux c'est mieux |
|
|
![]()
Message
#16
|
|
![]() Terminaltor Moderating Machine ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 24 456 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 ![]() |
CITATION(Fotz @ 18 Jan 2006, 11:52) [snapback]1514415[/snapback] Va falloir que tu nous fasses un jeu de Sudoku digne de ce nom, car on fait grise mine sous OS X face à Linux et son KSudoku. Tu saurais en faire autant ? Bah, Sudoku Susser est très bien fait quand même... Manque juste un peu d'ergonomie et c'est pas très joli ; il y a aussi apparemment de la fuite de mémoire puisque ça ralentit fortement après une longue utilisation. (mais bon, c'est RealBasic, faut pas trop en demander non plus ![]() Sinon, j'ai mis en gros mon programme au dessus ![]() -------------------- I think therefore I Mac
|
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 11:16 |