• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

NSTableView: DataSource Protokoll mit externem Modell

souljumper

Roter Delicious
Registriert
07.10.08
Beiträge
90
Hi,

ich hab ne NSTableView mit mehreren Spalten. Das Modell dazu liegt in einer gesonderten Klasse. Mein Problem ist nun, dass ein Modell-Eintrag aus mehreren String-Werten besteht. Das bedeutet ich muss es irgendwie schaffen, die informationen einzelnen spalten zuzuordnen.

Ich hab das jetzt so gemacht und dann den identifier abgefragt, den ich der spalte im IB gegeben hab und liefer anhand dessen den richtigen wert zurück - aber geht das auch irgendwie schöner?

- (id)tableView:(NSTableView *)tv objectValueForTableColumn:(NSTableColumn*) tableColumn row: (int) row {
if ( [[tableColumn identifier] isEqual:@"silbenschrift"])
return [[model objectAtIndex:row] silbenschrift];
else if ([[tableColumn identifier] isEqual:@"kanji"]){
return [[model objectAtIndex:row] kanji];
}
else if ([[tableColumn identifier] isEqual:@"romaji"]){
return [[model objectAtIndex:row] romaji];
}
else if ([[tableColumn identifier] isEqual:@"uebersetzung"]){
return [[model objectAtIndex:row] uebersetzung];
}
else if ([[tableColumn identifier] isEqual:@"type"]){
return [[model objectAtIndex:row] type];
}
return nil;
}
 
Jo, das geht auch schöner:
Code:
-(id)tableView:(NSTableView *)tv objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
    return [[model objectAtIndex:row] valueForKey:[tableColumn identifier]];
}
Warum geht das? Das Stichwort heißt Key-Value-Coding.

MacApple