Frage

Ich muss die folgenden Eigenschaften für meine nstable Ansicht 1 ändern - Farbe ändern: Zeilenfarbe und Textfarbe, wenn es ausgewählt ist 2 - Ändern Sie die Textfarbe, für jede Zeile hängt sie von einem Eingabeparameter ab.

Für die Änderung von TextColor für jede Zeile sollte ich die Delegate -Methode WillDisplayCell überschreiben. Dies habe ich bis jetzt getan.

-Erstellen der Tabelle ----

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]

;

--- Andere Delegate-Methode -------------

- (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";

    }

}

---- So setze ich die Textfarbe fest ---

- (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]];
    }

}

Mit dem obigen Code kann ich im Protokoll die Zeile sehen -[Nscell setTextColor:]: Nicht erkannter Selektor, der an Instanz gesendet wurde , bitte hilf mir,

Eine andere Sache ist, dass ich zunächst keinen Hintergrund für die Zelle brauche, aber wenn die Zelle ausgewählt ist, muss ich möglicherweise auch den Hintergrund ändern oder Sie können sagen, dass die Farbe der Highlight ist, kann ich das gleiche in WillDisplaycell bekommen

War es hilfreich?

Lösung

Es ist schon eine Weile her, dass ich das getan habe, aber ich verweise immer auf diesen Blog -Beitrag von Corbin Dunn, wenn ich es tun muss: Kakao: WillDisplayCell -Delegate -Methode von NstableView, [Nscell setTextColor] und "Quelllisten"

Übrigens arbeitet Corbin bei Apple und so wie ich verstehe, ist für NStableView verantwortlich. Wenn er über etwas Kakao bloggt, bin ich immer sicher, dass ich es mit einem Lesezeichen versehen werde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top