En-tête TableView à  la iTunes

mac_manumac_manu Membre
18:52 modifié dans API AppKit #1
Bonjour, qui peut me dire comment réaliser l'en-tête d'une tableColumn à  la façon d'iTunes, c'est-à -dire en gris texturé?

Réponses

  • laurrislaurris Membre
    18:52 modifié #2
    Tu devrais trouver ton bonheur avec iTableColumnheader :
    http://iratescotsman.com/products/source/
  • mac_manumac_manu Membre
    18:52 modifié #3
    Merci laurris, je vais le tester sur mon appli.
  • mac_manumac_manu Membre
    18:52 modifié #4
    Mince, ça ne fonctionne pas comme je l'aimerais. Tout d'abord, comme j'ai 3 NSTableView acollés, la barre se grise mais la partie supérieur du scroller reste à  la couleur d'origine. Donc la barre est "séparée" par 2 petits carrés blanc. Pas terrible comme effet. De plus, si j'ai plus d'une NSTableView avec header "metal", lorsque je redimentionne la fenêtre manuellement (par le coins inférieur droit), l'appli. quitte inopinément. Donc, je me retrouve au point de départ, et si quelqu'un a tester ou trouvé une autre manière de créer ces header metal, je suis preneur... :p
  • 18:52 modifié #5
    Les petits carrés blanc comme tu dis sont gérés par la NSTableView. Si tu veux changer ça, j'aurai tendance à  dire que c'est NSTableView qu'il faut sous-classer. La seule manière de créer des headers métalliques est de sous classer NSTableHeaderCell, c'est ce qui a été fait là . Donc essaye de voir avec le debugger où ça coince.
  • mac_manumac_manu Membre
    18:52 modifié #6
    OK, je vais alors perceverer dans ce sens... à  moins que quelqu'un d'autre a une autre solution à  me proposer.
  • mpergandmpergand Membre
    juillet 2005 modifié #7
    J'ai essayé de faire ça aussi et je peux te dire que c'est le bazar.
    Cocoa c'est bien, mais dès que tu veux faire un truc non standard ça devient du bricolage infame et t'oblige généralement à  utiliser des méthodes non documentées du genre _trucMachin, pas bon ça !

    Dans l'image jointe, tu peux voir un exemple de "Total Custom"y a pas un objet standard :)

    Pour en revenir au header à  la iTunes, j'ai tout subclassé:
    -NSTableView
    -NSTableHeaderView
    -NSTableHeaderCell
    -cornerView (NSView)

    voir: http://developer.apple.com/documentation/Cocoa/Conceptual/TableView/Concepts/TableParts.html

    Sous Panther et Tiger ça va, mais sous Jaguar y a un bug sur le headerView lors du redimensionnement des colonnes (connu voir sur Google)

    Voilà  bon courage !

    Pour le code, je te le donne sans problème, mais c'est du Java...


    [Fichier joint supprimé par l'administrateur]
  • mac_manumac_manu Membre
    18:52 modifié #8
    Merci mpergand. Effectivement, avec cocoa, dès que l'on sort des chemins, il faut bien s'accrocher. Domage qu'Apple n'ait pas mis ses header metal en standard, du moment que l'on choisi une interface métal brossé...Enfin, comme cela on peut se creuser l'esprit pour essayer d'y parvenir. Encore merci pour tes infos.
Connectez-vous ou Inscrivez-vous pour répondre.