Ma Souris et NSBox
Hello,
Je voudrais tout simplement "traquer" ma souris, et envoyer une action si la souris entre dans une NSBox. Et aussi quand elle sort.
Comme ma box est contenu ds une view, j'ai utilise la méthode addTracking.......
J'ai testé plein d'autre truc sur la même méthode mais rien n'y fait, le log ne s'affiche pas...
Merci d'avance
Je voudrais tout simplement "traquer" ma souris, et envoyer une action si la souris entre dans une NSBox. Et aussi quand elle sort.
Comme ma box est contenu ds une view, j'ai utilise la méthode addTracking.......
- (void)awakeFromNib<br />{<br /> [mainView addTrackingRect:[box1 frame] owner:self userData:(NSEvent *)NSMouseMoved assumeInside:YES];<br />}<br /><br />- (void)mouseEntered:(NSEvent *)theEvent<br />{<br /> NSLog(@"entered");<br />}<br />
J'ai testé plein d'autre truc sur la même méthode mais rien n'y fait, le log ne s'affiche pas...
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et il ne faut pas oublier de surcharger la méthode acceptsFirstReponder de ta view en retournant YES pour accepter autre chose que les mouse-down.
NSMouseMoved est une constante (comparable à un int!) de NSEvent qui est utilisée comme valeur de renvoi possible pour la méthode -type (ou pour créer un event). Donc déjà pourquoi l'utiliser?
Bon évidemment, ça ne compilera pas vu que void* exige un pointeur (le *), et toi tu fournis un int... Alors plutôt que de remettre en question l'utilisation de cette constante, tu la castes en NSEvent* pour que le compilo la ferme, mais ça reste complètement faux et donc ça ne peut pas aller. Ce n'est parce que le compilo dit blanc que ça l'est.
Je dois avouer que j'ai du mal à te cerner: tes applications sont bien dans l'ensemble, ce qui pour moi dénote une certaine aptitude à chercher l'info, mais lorsque ça ne va pas, tu sors des trucs complètement farfelus. Tu gagnerais vraiment à faire une petite pause objective-c, et à prendre un bouquin de C et faire quelques programmes en ligne de commande pour acquérir des bases que tu n'aurais pas pu acquérir avec l'AppleScript (surtout en terme de rigueur). Ce que je t'ai expliqué plus haut se trouve dans n'importe quelle introduction au C, donc il y a une lacune à ce niveau.
J'ai moi aussi pondu de grosses bouses quand j'ai commencé, mais c'est avec l'expérience, et parce que j'y ai pris du plaisir que j'ai progressé.
Maintenant, si t'en as marre de lui réapprendre les bases, ne le fais pas, et laisse-le se démerder, là il va apprendre!
P.S.: Et programmer en ligne de commande, c'est chiant.
Quand au plaisir de programmer, s'il arrive à son cast par une série d'essais et erreurs je ne sais pas si à terme il y prendra du plaisir. Passer 2 heures à faire des essais et erreurs a sur moi un effet de ras le bol, et me donne plutôt envie de tout jeter par la fenêtre.
Voilà donc pour ma part, je trouve que signaler les lacunes est plus utile que de taper RTFM, puis effacer et passer au post suivant. Surtout lorsqu'il s'agit de quelqu'un qui a du potentiel. Certes faire des petits programmes en shell est pénible, mais comme il a déjà une expérience 1. il y a des choses qu'il se contentait d'appliquer qu'il comprendra et 2. il en prendra autant de plaisir par la suite car il arrivera beaucoup plus vite à un résultat.
Je tiens à dire à tout ceux qui trouvent que Renaud est trop "agressif" sur ce coup, moi je le prend pas mal en tout cas et je trouve qu'il a clairement raison. D'ailleurs j'ai décidé, avant qu'il ne le suggère, de faire une pause ds la programmation d'applications Obj-C et étudier en profondeur la doc, relire le bouquin "Cocoa par la pratique", cours .. etc...
@+
De toute façon j'ai pas dit à quoi j'utiliserai ces 1000 roros