Compartement bizzare de NSTableView

beltbelt Membre
16:44 modifié dans API AppKit #1
Dans IB, je choisis l'option "Use Alternating rows Background" et quand je remplis l'un quelconque des champs de mon NSTableView avec du texte, le fond coloré disparaà®t !

Réponses

  • Eddy58Eddy58 Membre
    16:44 modifié #2
    J'ai eu droit à  ce bug gênant, et dans ce cas je met le code suivant pour corriger cela : :)
    [tt]
    -(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(int)row
    {
    if ((row % 2)==0)
    {
    [cell setBackgroundColor:[NSColor whiteColor]];
    }
    else
    {
    [cell setBackgroundColor:[NSColor colorWithCalibratedRed:(237.0/255.0) green:(243.0/255.0) blue:(254.0/255.0) alpha:1.0]];
    }
    }
    [/tt]
  • beltbelt Membre
    16:44 modifié #3
    Merci, j'aurais pu chercher longtemps...
    Les bugs dans les frameworks cocoa sont-ils nombreux ?
  • Eddy58Eddy58 Membre
    juillet 2005 modifié #4
    Les bugs sont assez rares à  ma connaissance, mais c'est vrai que l'on tombe sur des bizarreries de temps en temps, par exemple avec les NSDrawer, voir ce post : http://www.objective-cocoa.org/forum/index.php?topic=597.msg6284#msg6284
    Les min et max content size donnent selon certaines valeurs un comportement erratique...??? Bon à  l'époque c'était sur Panther, peut-etre que sous Tiger cela a été corrigé, mais je n'ai pas essayé.
    Quand au code ci-dessus, tu peux l'optimiser en conditionnant les colonnes pour lesquelles tu veux que le background soit redessiné.(colonnes éditables seulement) :)

    [tt]-(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(int)row
    {
    if (| [[tableColumn identifier] isEqualToString:@&quot;colonne3&quot;])<br /> {<br /> if ((row % 2)==0)<br /> {<br /> [cell setBackgroundColor:[NSColor whiteColor;
    }
    else
    {
    [cell setBackgroundColor:[NSColor colorWithCalibratedRed:(237.0/255.0) green:(243.0/255.0) blue:(254.0/255.0) alpha:1.0]];
    }
    }
    }
    [/tt]
Connectez-vous ou Inscrivez-vous pour répondre.