46 votes

Rappels lorsqu'un NSScrollView défile?

Je crée une application Mac qui doit savoir quand l'utilisateur fait défiler le NSScrollView , cependant, je ne trouve aucune méthode comme UIScrollView , qui a les méthodes déléguées suivantes:

 – scrollViewDidScroll:
– scrollViewWillBeginDragging:
– scrollViewDidEndDragging:willDecelerate:
– scrollViewShouldScrollToTop:
– scrollViewDidScrollToTop:
– scrollViewWillBeginDecelerating:
– scrollViewDidEndDecelerating:
 

Puis-je avoir les mêmes méthodes de délégué pour le kit d'application? Merci d'avance.

Kai.

77voto

Sean Rich Points 965

Vous pouvez surveiller les modifications d'une vue de défilement en surveillant les limites de sa vue de contenu. Définissez d'abord la vue de contenu pour publier ses modifications avec

 [contentView setPostsBoundsChangedNotifications:YES];
 

Inscrivez-vous ensuite en tant qu'observateur de ces notifications auprès de

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(boundsDidChange:) name:NSViewBoundsDidChangeNotification object:contentView]; 
 

4voto

Jorge Llorente Points 41

Eu le même problème récemment ... Pour émuler quelque peu les rappels de décélération, il est possible de remplacer

 -(void) scrollWheel:(NSEvent *)theEvent 
 

de la classe NSScrollView, mais vérifiez ensuite l' Event.momentumPhase au lieu de l'Event.phase pour les phases d'événement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X