MouseEntered & Exited dans NSButton
à‰tant donné que NSButton descend de NSView (tout comme l'Homme descend du singe), le "mouse tracking" devrait être fonctionnel dans ma sous-classe NSButton.
Hors, malgré l'implémentation de
et
Je n'obtiens rien du tout...
En lisant la doc Apple, j'ai rajouté addTrackingRect:owner:userData:assumeInside:
Rien n'y fait. (J'ajoute que ma fenêtre accepte bien les mouvements de souris)
Merci d'avance,
Louka.
Hors, malgré l'implémentation de
- (void)mouseEntered:(NSEvent*)theEvent
et
- (void)mouseExited:(NSEvent*)theEvent
Je n'obtiens rien du tout...
En lisant la doc Apple, j'ai rajouté addTrackingRect:owner:userData:assumeInside:
<br />- (id)initWithFrame:(NSRect)frame {<br /> self = [super initWithFrame:frame];<br /> if (self) {<br /> [self addTrackingRect:frame owner:self userData:nil assumeInside:NO];<br /> }<br /> return self;<br />}<br />
Rien n'y fait. (J'ajoute que ma fenêtre accepte bien les mouvements de souris)
Merci d'avance,
Louka.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Mais c'est dans NSButtonCell qu'il faut regarder !
Sous-classe le buttonCell de ton NSButton.
Ensuite, il faut autoriser ton buttonCell à recevoir les mouse-moved-events par :
[tt][buttonCell setShowsBorderOnlyWhileMouseInside:YES];[/tt]
Enfin, il ne te reste plus qu'à implémenter mouseEntered: et mouseExited: dans la sous-classe de NSButtonCell.
J'utilise cette méthode pour créer un bouton qui ressemble à un hyperlien.
Cela permet de modifier le curseur de la souris (en main) dès que le pointeur survole le lien.
.
Mais ça ne répond pas à mouseEntered: ni mouseExited:
J'ajoute que je "dessine" cette sous-classe de NSButton dans une NSView (addSuview:)
Alors si chez toi, ça ne marche pas... Tu connais ma réponse !
Je te joins le bout de code que j'utilise pour les hyperliens :
.