2012-12-14 1 views
0

J'ai une vue Table à trois colonnes remplie par deux NSMutableDictionaries qui partagent les mêmes clés (ie | key1 | value2) avec dict1 (clé, valeur1) et dict2 (clé, valeur2). Je souhaite entrer manuellement les données dans la troisième colonne et créer les objets clé/valeur dans dict2. Mais quand je fais ça, mon code prend la mauvaise clé: SRécupération des données dans un NSTableView

Voici le code pour le délégué:

- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex 
{ 
if ([[aTableColumn identifier] isEqualToString:@"value2"]) 
    { 
    [dict2 setValue:anObject forKey:[[[aTableView tableColumnWithIdentifier:@"key"] dataCellForRow:rowIndex] stringValue ]]; 
    }  
} 

Toute idée?

EDIT: Je veux compléter ma question: comment pouvez-vous récupérer les données affichées dans une cellule? Je ne vois pas d'autre moyen d'utiliser NSMutableDictionnaries avec TableViews, car [dict allKeys] ne donne pas les clés dans le même ordre que celui utilisé pour l'afficher! Et stocker une version de [dict allKeys] semble redondant et stupide.

Répondre

0

Je pense que cette fonction de délégué que vous utilisez est utilisée pour afficher les données dans le tableau avec la source de données de format. Il est utilisé pour définir, ne pas récupérer.

Vous pouvez utiliser - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath pour définir la source de données pour tableview.