• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Seit Gutenbergs Zeiten haben sich nicht nur Bücher über die ganze Welt verbreitet, sondern Buchstaben und Wörter begleiten uns allumfassend. Selbst moderne Devices mit Sprachsteuerung und Super-KI kommen nicht ohne Buchstaben, Wörter oder Symbole aus. Nicht zuletzt darum ist das Thema das Monats Am Anfang war das Wort ---> Klick

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:mad:"silbenschrift"])
return [[model objectAtIndex:row] silbenschrift];
else if ([[tableColumn identifier] isEqual:mad:"kanji"]){
return [[model objectAtIndex:row] kanji];
}
else if ([[tableColumn identifier] isEqual:mad:"romaji"]){
return [[model objectAtIndex:row] romaji];
}
else if ([[tableColumn identifier] isEqual:mad:"uebersetzung"]){
return [[model objectAtIndex:row] uebersetzung];
}
else if ([[tableColumn identifier] isEqual:mad:"type"]){
return [[model objectAtIndex:row] type];
}
return nil;
}
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
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