[Cocoa] NSTableView - Wert aus bestimmter Zelle verwenden

Dieses Thema im Forum "macOS-Developer" wurde erstellt von julian_mac, 24.12.15.

Schlagworte:
  1. julian_mac

    julian_mac Grahams Jubiläumsapfel

    Dabei seit:
    30.05.14
    Beiträge:
    107
    Hallo zusammen,

    Habe eine Tabelle erstellt mit 3 Spalten, die ihren Inhalt speichert via Core Data. Jetzt soll von der markierten Zeile ein bestimmter Wert verwendet werden (Hab das in dem Screenshot mal dargestellt). Wie kann ich jetzt z.B. den Wert der Telefonnummer "rausziehen" und verwenden.
    Bildschirmfoto 2015-12-24 um 12.16.43.png
     
  2. Tobias Scholze

    Tobias Scholze Apfeltalk Entwicker

    Dabei seit:
    15.07.09
    Beiträge:
    1.576
    Hi,
    dies kannst du auf verschiedenen Wege machen. Entweder beim didSelect...() Methodenaufruf oder in dem du dir von der tableview den indexPathForSelectedRow holst. Du müsstest den indexPath.row auf den Index deiner Datenquelle mappen können.

    LG, Tobi
     
    julian_mac gefällt das.
  3. julian_mac

    julian_mac Grahams Jubiläumsapfel

    Dabei seit:
    30.05.14
    Beiträge:
    107
    Danke Tobias für Deine Antwort!

    Habe mithilfe folgender Zeilen Code jetzt die entsprechende Zeile herausgefunden. Aber ich komme immer noch nicht an den Wert einer bestimmten Zelle ran. Kannst Du, oder ein anderer aus der Community, mir hier noch Nachhilfe geben?

    Code:
    - (void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
    {
        if(tableView == self.TableView)
        {
            if (row == [tableView editedRow] && [[tableView tableColumns] indexOfObject:tableColumn] == [tableView editedColumn])
            {
                NSLog(@"Ausgewählte Zeile: %@",[cell stringValue]);
            }
        }
    }

    Vielen Dank für Eure Hilfe! :)
     
  4. Tobias Scholze

    Tobias Scholze Apfeltalk Entwicker

    Dabei seit:
    15.07.09
    Beiträge:
    1.576
    Hi,
    auch wenn es lange her ist:

    Du holst nicht den Wert aus einer Zelle sondern aus der DataSource (deiner Liste / Array von Datenpunkten). Beispiel ist die Row = 2 holst du dir das Element von Index 2 aus deiner Liste.

    Grüße, Tobi