3 votes

Comment détecter le défilement pour NSOutlineView ?

J'ai deux NSOutlineViews affichées côte à côte ; elles contiennent le même nombre de lignes (c'est une condition préalable) et j'ai besoin de les synchroniser lorsque l'utilisateur les fait défiler à l'aide de la souris, du clavier ou des barres de défilement afin de voir la même portion de vue (ou lignes).

Je suis un nouveau venu dans le monde de Cocoa et je ne parviens pas à trouver comment cela peut être réalisé.

3voto

Joshua Nozzi Points 38718

Vous souhaitez obtenir le clip view de la vue défilante englobante de la NSOutlineView :

NSClipView * clipView = [[outlineView enclosingScrollView] contentView];

...et définissez son -setPostsFrameChangedNotifications : sur YES. Écoutez la notification NSViewFrameDidChangeNotification de cette vue et répondez en conséquence.

Nota: La nomenclature n'est pas très claire. La première attente de la plupart des gens concernant -contentView : est qu'elle renvoie la vue en cours de défilement. La méthode -contentView : renvoie le NSClipView de la vue en cours de défilement, tandis que la méthode -documentView : renvoie la vue en cours de défilement.

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