Comment afficher un objet sur deux lignes dans une tableview

ChristopheChristophe Membre
14:27 modifié dans API AppKit #1
Bonjour,

Est-il possible d'avoir un objet affiché sur 2 lignes dans une NSTableView ?
Et si oui comment ?

Merci

Christophe

Réponses

  • Eddy58Eddy58 Membre
    14:27 modifié #2
    A ma connaissance ce n'est pas possible, mais pourquoi diantre voudrait tu utiliser deux lignes pour un objet ?  ???
  • 14:27 modifié #3
    C'est possible en créant une sous classe de NSCell et en spécifiant à  une ou plusieurs colonnes de la table en question d'utiliser ces cells comme modèle. C'est une opération relativement complexe (surtout si tu veux prévoir l'édition de la cellule). Quel est ton niveau d'expérience?
  • mpergandmpergand Membre
    septembre 2004 modifié #4
    NSTableColumn col=tableView.tableColumnWithIdentifier(&quot;msg&quot;);<br />NSCell cell=col.dataCell();<br />               <br />cell.setScrollable(false);<br />cell.setWraps(true);<br />
    


    [edit]
    Si tu ne dérires le faire que pour certaines rangées, tu dois dériver NSTableColumn et dans dataCellForRow retourner le cell qui convient, comme le précise Renaud.
    Ca donne :

    [Fichier joint supprimé par l'administrateur]
  • Eddy58Eddy58 Membre
    14:27 modifié #5
    Ouai je vois mieux ce qu'il veut faire, en effet je comprend mieux l'utilité maintenant si ce n'est que pour une ou plusieurs colonnes..... En sous-classant NSCell, oui, mais que veut mettre Christophe dedans ?
  • 14:27 modifié #6
    C'est vrai il y a plusieurs façons de le comprendre. Celle proposée par mpergand. Pour ma réponse je pensais plutôt à  ce qu'on voit dans iChat (la ligne du haut avec le nom, celle du bas avec le statut).
  • Eddy58Eddy58 Membre
    14:27 modifié #7
    Oui, le modèle de Mpergand est une chose, mais effectivement Renaud, il y a plusieurs façons de comprendre, moi je vois plus compliqué, par exemple une colonne tout à  gauche qui aurait une ligne qui ferait la hauteur de deux lignes de la colonne a sa droite.  :-\
  • mpergandmpergand Membre
    septembre 2004 modifié #8
    une piste: tableTester

    voir: TableTester3 onglet Timeline
  • ClicCoolClicCool Membre
    14:27 modifié #9
    Oooh merci mpergand :D

    En voila un site qui semble interressant et que je ne connaissais pas !

    Si d'autres connaissent des sites cocoa qu'ils n'hésitent pas à  nous les faire connaitre surtout :)
    (par exemple dans le forum Objective-Cocoa le site)

    merci merci, :)
  • mpergandmpergand Membre
    14:27 modifié #10
    Il a posé la même question sur tous les forums ou presque  ;D

    Il veut un truc comme ça  ???
    [size=7pt]
      En  Objective-C.
      le résultat que j'aimerai est le suivant :
     
     

      champ 1        | champ 2               | champ 3
     

      champ 4        | champ 5
     

    [/size]
  • nucleusnucleus Membre
    14:27 modifié #11
    Peut-être en créant une NSCell mettant en oeuvre un mélange des design pattern Composite et Decorator?

    Cette NSCell aurait la responsabilité de l'agencement du tableau (avec des fusions de cellules "colspan" à  la HTML ou à  la Excel) et déléguerait l'affichage de cellule du tableau à  des Cell classiques..

    [size=5pt]Attention l'abus de fusion de cellule dans Excel peut être dangereux pour la santé.. :-)[/size]
  • Eddy58Eddy58 Membre
    14:27 modifié #12
    dans 1096393900:

    une piste: tableTester

    voir: TableTester3 onglet Timeline


    Il est bien cet exemple Mpergand ! :)
    On en apprend bcp sur les NSTableViews avec ce code source. En effet avec le timeline, Christophe devrait avoir un début de solution....
  • ChristopheChristophe Membre
    14:27 modifié #13
    Merci de vos réponses, je vais voir cet exemple ce soir.

    Christophe
Connectez-vous ou Inscrivez-vous pour répondre.