NSOutlineView : dessiner une OutlineCell pour la selection

avril 2008 modifié dans API AppKit #1
Bonjour,

En fait j'ai une sous classe d'un NSOutlineView dans laquelle la méthode
- (void)drawRow:(int)rowIndex clipRect:(NSRect)clipRect

Permet de controller le dessin de la selection... seulement le problème c'est que l'outlineCell ne s'affiche bien évidemment pas.

Alors, comment déssiner cette cellule ?

Merci d'avance.

Réponses

  • Philippe49Philippe49 Membre
    16:21 modifié #2
    Tu as essayé les méthodes de NSCell
    drawWithFrame: inView:
    drawInteriorWithFrame: inView:

    A voir dans dans la doc sur les custom-NSCell
  • 16:21 modifié #3
    Ce qui sous entends d'avoir la frame de l'outlineCell...

    En fait l'idéal ce sont les deux méthodes privées :
    - (void)_drawOutlineCell:(id)fp8 withFrame:(struct _NSRect)fp12 inView:(id)fp28;
    - (struct _NSRect)_frameOfOutlineCellAtRow:(int)fp8;

    Mais j'aurais bien aimé un peu plus propre ! (et pour 10.4).
    @+
  • Philippe49Philippe49 Membre
    16:21 modifié #4
    dans 1208448359:

    Ce qui sous entends d'avoir la frame de l'outlineCell...



    Non c'est comme pour une méthode drawRect dans NSView, le rectangle est passé en paramètre.
    Tu sous-classe la NSCell, et tu y redéfinis les méthodes que j'ai citées.
    La frame de la cellule te sera fournie en argument.
  • 16:21 modifié #5
    Bonjour,

    Je ne suis pas... le problème ce pose pour "l'outlineCell" (le petit triangle des dossiers) et non un cell du contenu. Je ne peux pas la sous classer.
  • Philippe49Philippe49 Membre
    16:21 modifié #6
    setImage: de NSCell ne suffit pas ?
Connectez-vous ou Inscrivez-vous pour répondre.