les NSTableView à  zéro collone refusent de se rafraichir

ClicCoolClicCool Membre
17:50 modifié dans API AppKit #1
Bonjour :)

Il semble que les NSTableViews soient incapables de supprimer toutes les colonnes et leur header.

J'ai tout essayé, après avoir supprimé toutes les colonnes, en appelant stNeedDisplay, tile, display sur la tableView ou sa superVue ... rien n'y fait. ???

Quelqu'un a-t-il déjà  expérimenté ce problème ?

Réponses

  • Eddy58Eddy58 Membre
    17:50 modifié #2
    Salut ClicCool :)

    Sans indiscrétion, à  quoi ça sert une tableview à  zero colonnes ?
    C'est une tableview dont tu changes le nombre de colonnes dynamiquement, et dans le cas ou tu as zero colonnes, t'as un problème ?
  • ClicCoolClicCool Membre
    17:50 modifié #3
    Salut Eddy :)

    Oui c'est une tableView dynamique destinnées à  afficher les données de différentes tables d'une base de données.
    Il y a des moments où aucune table n'est associée à  la tableView (en particulier quand l'utilisateur change de base de donnée et n'a pas encore choisi dans la nouvelle liste des tables disponibles).

    Dans IB la table est construite avec zéro colonne et au chargement du nib elle s'affiche bel et bien sans entête.
    Mais une fois que la tableView affichée des colonnes, leurs entêtes refusent de s'éffacer et continuent d'afficher les titres des champs de la dernière table affichée.
    Je suis alors obligé de créer une colonne "fictive" aussi large que la tableView pour faire disparaà®tre les anciennes entêtes. :(
  • Eddy58Eddy58 Membre
    17:50 modifié #4
    Donc tu supprimes tes colonnes avec removeTableColumn:, et les tableColumnHeaders ne s'en vont pas avec tes colonnes ?  :-\
  • ClicCoolClicCool Membre
    17:50 modifié #5
    dans 1097506789:

    Donc tu supprimes tes colonnes avec removeTableColumn:, et les tableColumnHeaders ne s'en vont pas avec tes colonnes ?  :-\


    C'est exactement ça :(

    Une piste m'a laissé penser qu'un [tableView display] ou autre devrait fonctionner, c'est que si je redimensionne la fenêtre contenant la tableView les headers disparaissent enfin !

    Mais je n'ai pas réussi à  provoquer ça "programatiquement"  :-\
  • BruBru Membre
    17:50 modifié #6
    Savez-vous que les NSTableHeaderViews ne font pas partie de la NSTableView, mais de la NSScrollView qui enclos tout ça ?

    Donc, un [[[tableview superview] superview] setNeedsDisplay:YES] vaut la peine d'être essayer (le premier "superview" renvoie la NSClipView qui fait défiler les lignes, le second permet de récupérer la NSScrollview dans laquelle est dessinée la NSClipView, mais aussi les NSHeaderViews et la NSCornerView)...

    .
  • ClicCoolClicCool Membre
    17:50 modifié #7
    dans 1097509149:

    Savez-vous que les NSTableHeaderViews ne font pas partie de la NSTableView, mais de la NSScrollView qui enclos tout ça ?

    Donc, un [[[tableview superview] superview] setNeedsDisplay:YES] vaut la peine d'être essayer (le premier "superview" renvoie la NSClipView qui fait défiler les lignes, le second permet de récupérer la NSScrollview dans laquelle est dessinée la NSClipView, mais aussi les NSHeaderViews et la NSCornerView)...

    .


    Ben vu Bru  8)

    [size=10pt]ça marche ![/size]

    Je n'avais pas penser à  appeler 2 fois superView !!
  • mac_manumac_manu Membre
    17:50 modifié #8
    Bonjour,
    J'ai un problème quasi semblable. J'ai une NSTableView à  une colonne et une autre à  plusieurs colonnes. (donc le probl. est indépendant du nbre de col.) J'ai activé la case vertical Scroller et la case automatically hide Scrollers. Bien que ma table comporte plus de données que de lignes visibles, le Scroller reste caché, il me faut alors déplacer le Split entre mes 2 tables ou modifier la taille de la fenêtre pour qu'il apparaisse. Comment puis-je résoudre ce problème par programmation?  ;D
Connectez-vous ou Inscrivez-vous pour répondre.