Scroller deux tableview en même temps

15:08 modifié dans API AppKit #1
Bonsoir,

Je vous expose mon problème :
J'ai 2 tableView, et une seule peut-être scrollée. Je voudrai donc que lorsque l'utilisateur scrolle cette tableview, la seconde suive exactement le même "rythme", sachant que le contenu est le même.
Je sais que c'est farfelu :D En fait le contenu de la seconde table n'est pas le même, mais contient exactement le même nombre d'item que l'autre.

Merci,
Louka.
(PS : Je suis entrain de faire un ch'tit framework pour la section ressources de OC. Comme je l'avais promis il y a un moment, ça sera un contrôleur perso comme le lecteur QuickTime ou iTunes par exemple, donc pour afficher un temps, il pourra également servir de progress indicator).

Réponses

  • AliGatorAliGator Membre, Modérateur
    15:08 modifié #2
    Et tu veux pas tout mettre dans la même TableView (quitte à  personnaliser les TableColumns ou les cells pour faire une séparation visuelle des 2 parties de ton contenu) ?
  • NoNo Membre
    15:08 modifié #3
    dans 1214950326:

    J'ai 2 tableView, et une seule peut-être scrollée. Je voudrai donc que lorsque l'utilisateur scrolle cette tableview, la seconde suive exactement le même "rythme", sachant que le contenu est le même.
    Je sais que c'est farfelu :D En fait le contenu de la seconde table n'est pas le même, mais contient exactement le même nombre d'item que l'autre.


    Le scrolling de NSTableView n'est jamais que la modification de l'origine du bound de la NSClipView qui l'affiche.
    Donc, si tu écoutes la notification NSViewBoundsDidChangeNotification de cette NSClipView (donc quand tu scrolles la table 1), il suffit de recopier le nouveau bound dans la NSClipView de la table 2 :
    <br />- (void)NSViewBoundsDidChangeNotification:(NSNotification *)notification<br />{<br />&nbsp; &nbsp; // récupération de NSClipView de la table 2<br />&nbsp; &nbsp; NSClipView *clipView1=[tableView1 superview];<br />&nbsp; &nbsp; NSClipView *clipView2=[tableView2 superview];<br /><br />&nbsp; &nbsp; // récupération du nouveau bound de la table 1<br />&nbsp; &nbsp; NSRect newBounds=[clipView1 bounds];<br /><br />&nbsp; &nbsp; // recopie du nouveau bounds vers la NSClipView de la table 2<br />&nbsp; &nbsp; [clipView2 setBoundsOrigin:newBounds.origin];<br /><br />&nbsp; &nbsp; // puis on raffraichit la position du scroller de la table 2<br />&nbsp; &nbsp; NSScrollView *scrollView2=[clipView2 superview];<br />&nbsp; &nbsp; [scrollView2 reflectScrolledClipView:clipView2];<br />}<br />
    
  • Philippe49Philippe49 Membre
    15:08 modifié #4
    Il y a peut-être également une piste dans le document sur la synchronisation des ScrollView
  • Philippe49Philippe49 Membre
    15:08 modifié #5
    Question attenante :
    L'inspecteur des Bindings d'un NSScroller expose la property Value.
    Quelqu'un sait-il ce que cela représente ?
  • 15:08 modifié #6
    dans 1214955785:

    Et tu veux pas tout mettre dans la même TableView (quitte à  personnaliser les TableColumns ou les cells pour faire une séparation visuelle des 2 parties de ton contenu) ?


    ça c'est intéressant, le problème est que je ne vois pas comment faire.
    Si certains d'entre vous se souviennent, j'avais posté une image sur la recherche de CoverSutra 2. Elle présente à  droite la liste des morceau, une tableview surement. et à  droite on a l'album correspondant.

    Moi j'avais choisi de faire 2 tables, une pour les albums et une pour les tracks. ça semblait être la solution la plus simple, mais aussi la plus lente malheureusement.
Connectez-vous ou Inscrivez-vous pour répondre.