Comment creer un MouseOver: dans cocoa pour une NSview/NSWindow
Genose
Membre
Je travaille sur une methode avec laquelle je pourrait faire changer l'AlphaValue, jusque la tout va bien.
c'est quand je cherche pour recréer mon cher et tant apprécié OnMouseOver (ben oui, avant le cocoa, je fesait du PHP principalement),que là ! je ne trouve plus la maniere de le faire.
quelqu'un connait il comment recreer ce comprtement, où quand ma souris passe par deessus d'un Objet(NSview/Nswindow) un "machin" appelle ma methode -(id)SplachAlpha:(id)value
es ce les observers , les windowatpoint ?
merci de m'eclairé là -dessus.
c'est quand je cherche pour recréer mon cher et tant apprécié OnMouseOver (ben oui, avant le cocoa, je fesait du PHP principalement),que là ! je ne trouve plus la maniere de le faire.
quelqu'un connait il comment recreer ce comprtement, où quand ma souris passe par deessus d'un Objet(NSview/Nswindow) un "machin" appelle ma methode -(id)SplachAlpha:(id)value
es ce les observers , les windowatpoint ?
merci de m'eclairé là -dessus.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bernard, au secours !
Regarde du côté de
+
Chacha
Soit ce qui est important est un changement d'état lorsque le curseur rentre ou sort de la vue. Dans ce cas, le plus simple est de rajouter ça dans l'implémentation de ta vue:
[tt]- (void) viewDidMoveToWindow {
[self addTrackingRect:[self bounds]
owner:self
userData:nil
assumeInside:NO];
}[/tt]
Et tu n'auras plus qu'à surcharger les méthodes[tt]-(void)mouseEntered:(NSEvent*)event[/tt] et [tt]-(void)mouseExited:(NSEvent*)event[/tt] pour mettre à jour une valeur interne qui signale que la souris est sur la vue ou non et demander de redessiner son contenu.
Et autre possibilité, c'est la surcharge de mouseMoved, comme indiqué par chacha (qui a décidé de me griller aujourd'hui :P).
merci
j'ai fait une catégorie qui integre NSView et les methode mouse
@interface MonWindController : WindowwController
@end
@interface MonWindController(NSView)
-(void)mouseExited:(NSEvent*)event;
-(void)mouseEntered:(NSEvent*)event;
@end
@implementation MonWindController(NSView)
-(void)mouseExited:(NSEvent*)event
{
NSLog(@\n\n>>>>>>>> mouse event NSview bye \n\n>>>>>>>>>>>>>>>>);
}
{
NSLog(@\n\n>>>>>>>> mouseentered event NSview coucou \n\n>>>>>>>>>>>>>>>>);
}
@end
et mon appel de methode est le suivant:
[[[self window] contentView ] addTrackingRect: [[self window] frame]
owner:self
userData:nil
assumeInside:NO];
j'ai fait un traking sur la fenetre et peut etre pas correctement d'ailleur ?! mais cela fonctionne comme prévu.
maintenant ma fenêtre fait des disparitions à la demande(comme le dock)
et merci