Question

Je dois modifier les propriétés suivantes pour mon NSTable Voir 1 - Changer la couleur: Ligne Couleur et Couleur du texte lorsque son sélectionné 2 - Changement de la couleur Texte, pour chaque ligne, il dépend de certains paramètres d'entrée,

Pour changer textcolor pour chaque ligne, je remplacer méthode déléguée willDisplayCell, ce que je l'ai fait, jusqu'à présent,

- Création de la table ----

pMyTableView       = [[[CustomTableView alloc] initWithFrame:clipViewBounds] autorelease];


NSTableColumn*  firstColumn     = [[[NSTableColumn alloc] initWithIdentifier:@"firstColumn"] autorelease];

[firstColumn setWidth:35];

[pMyTableView  addTableColumn:firstColumn];

NSTableColumn*  secondColumn        = [[[NSTableColumn alloc] initWithIdentifier:@"secondColumn"] autorelease];

[secondColumn setWidth:180];

[pMyTableView  addTableColumn:secondColumn];
    [pMyTableView setRowHeight:30];

    [self SetContactTableDisplayAttribute];

[pMyTableView setDataSource:self];
[scrollView setDocumentView:pOnLineCTView];

    [pMyTableView setDelegate:self]

;

--- autres délégué Procédé -------------

- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{
    if([pColName isEqualToString:@"secondColumn"]) 
    {
           // Here there is some logic , to get the proper string that i wanted to display
        return @"tempString";

    }

}

---- Maintenant, c'est comment je suis en train de la couleur du texte ---

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex {

    NSString *colName = [aTableColumn identifier];
    if([colName isEqualToString:@"secondColumn"]){
        NSTextFieldCell *pCell = aCell;
        [pCell setTextColor:[NSColor blueColor]];
    }

}

Avec le code ci-dessus, sa va exception dans le journal, je pouvais voir la ligne - [NSCell SetTextColor:]: sélecteur non reconnu envoyé à l'instance On dirait que quelque part j'ai besoin pour définir le texte cellulaire champs, mais comment et où je n'ai aucune idée, aide de bien vouloir me,

Une autre chose est, d'abord je ne pas besoin de fond pour la cellule, mais une fois que lorsque la cellule est sélectionnée, aussi je pourrais avoir besoin de changer l'arrière-plan ou vous pouvez dire la couleur de surbrillance, puis-je obtenir la même chose dans WillDIsplayCell trop

Était-ce utile?

La solution

Il a été un moment que je l'ai fait, mais je me réfère toujours à ce poste de blog par Corbin Dunn quand je dois le faire: Cocoa: willDisplayCell méthode déléguée de NSTableView, [NSCell SetTextColor], et « listes de source »

Par ailleurs, Corbin travaille chez Apple et de ce que je comprends est responsable de NSTableView. Quand il blogs sur quoi que ce soit Cocoa je toujours être sûr de signet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top