NSTableView: récupérer contenu d'une cellule

RocouRocou Membre
03:42 modifié dans API AppKit #1
Bonjour,

Comment faire pour récupérer le contenu d'une cellule d'une NSTableView?
Je récupère les indexes grâce à  [tableView selectedRow] et [tableView selectedColumn] mais comment faire pour accéder au contenu la cellule?

Je précise que toutes les cellules contiennent du texte.

Réponses

  • 03:42 modifié #2
    Comme tu as forcément rempli le contenu de ta cellule à  partir d'un objet à  X index de ton data (NSArray), il suffit simplement de récupérer cette Array que tu utilises pour ta TableView :
    <br />NSString* monTexte = [maArray objectAtIndex:[maTableView selectedRow]];<br />
    
  • NoNo Membre
    03:42 modifié #3
    On peut aussi pour le fun appeler directement le datasource de la NSTableView :
    <br />NSTableColumn *colonne=[[tableview tableColumns] objectAtIndex:numcolonne];<br />id contenu=[[tableview dataSource] tableView:tableview objectValueForTableColumn:colonne row:numligne];<br />
    

    où tableview est l'outlet vers la NSTableView, numcolonne et numligne étant les numéros de colonne et de ligne de la cellule voulue.
  • RocouRocou Membre
    03:42 modifié #4
    Merci à  tous les deux, j'ai néanmoins procédé autrement:

    NSString *contenuCellule&nbsp; = [[tableView preparedCellAtColumn:[tableView selectedColumn] row:[tableView selectedRow]] stringValue];
    
  • 03:42 modifié #5
    dans 1239101765:

    Merci à  tous les deux, j'ai néanmoins procédé autrement:

    NSString *contenuCellule&nbsp; = [[tableView preparedCellAtColumn:[tableView selectedColumn] row:[tableView selectedRow]] stringValue];
    


    Ouaip enfin ceci dit ça devient débile de faire plus long si le stringValue est le même que celui à  l'index de ta Array  ;D
  • RocouRocou Membre
    03:42 modifié #6
    dans 1239110165:

    dans 1239101765:

    Merci à  tous les deux, j'ai néanmoins procédé autrement:

    NSString *contenuCellule&nbsp; = [[tableView preparedCellAtColumn:[tableView selectedColumn] row:[tableView selectedRow]] stringValue];
    


    Ouaip enfin ceci dit ça devient débile de faire plus long si le stringValue est le même que celui à  l'index de ta Array  ;D

    Ta méthode ne donne pas le contenu d'une cellule mais le contenu de toute la ligne.
  • 03:42 modifié #7
    dans 1239115167:

    dans 1239110165:

    dans 1239101765:

    Merci à  tous les deux, j'ai néanmoins procédé autrement:

    NSString *contenuCellule&nbsp; = [[tableView preparedCellAtColumn:[tableView selectedColumn] row:[tableView selectedRow]] stringValue];
    


    Ouaip enfin ceci dit ça devient débile de faire plus long si le stringValue est le même que celui à  l'index de ta Array  ;D

    Ta méthode ne donne pas le contenu d'une cellule mais le contenu de toute la ligne.


    ... ma méthode est un exemple. Si tu as une NSDictionary à  chaque ligne de ta NSArray, alors comme un grand tu rajoutes simplement "objectForKey:@LaClé" pour récupérer la valeur de la celulle.
    Mais chacun sa façon de faire, je le conçois
  • RocouRocou Membre
    03:42 modifié #8
    [quote author=Eaglelouk link=topic=3509.msg35234#msg35234
    ... ma méthode est un exemple. Si tu as une NSDictionary à  chaque ligne de ta NSArray, alors comme un grand tu rajoutes simplement "objectForKey:@LaClé" pour récupérer la valeur de la celulle.
    Mais chacun sa façon de faire, je le conçois
    [/quote]
    Absolument mais si tu relis mon message, je ne veux pas accéder à  mes cellule par "clé" mais par indice. S'il existe un truc du style "objectForXY", je suis preneur!  :o
Connectez-vous ou Inscrivez-vous pour répondre.