2011-03-11 2 views
0

J'essaye de faire un programme qui aura un NSTableView que je peux ajouter et supprimer des valeurs, et pour chaque valeur il va stocker quelques variables différentes qui seront affichées dans les zones de texte lorsqu'un utilisateur sélectionne un élément de la table. J'ai déjà écrit le code pour ajouter et supprimer des valeurs, mais je n'arrive pas à trouver un moyen de faire fonctionner le reste des fonctionnalités. Comment puis-je faire ceci?Afficher des valeurs différentes pour chaque ligne dans NSTableView

Répondre

1

Je vous suggère de représenter chaque élément de votre source de données tableview (votre tableau d'objets) comme un NSDictionary. Cela vous permet de conserver plusieurs variables pour chaque élément de vue de table, qui peuvent être affichées dans des zones de texte lorsqu'un clic est effectué sur un élément. Apple a un très bon exemple qui illustre ce que je pense que vous essayez de faire. Jetez un oeil à la NSTableViewBinding example. Dans l'exemple, lorsque l'utilisateur double-clique sur un élément de la vue de table, une méthode d'inspection est appelée. Vous pouvez utiliser cette méthode pour afficher vos variables du dictionnaire textboxes:

- (void)inspect:(NSArray *)selectedObjects 

{

// this is an example of inspecting each selected object in the selection 
int index; 
int numItems = [selectedObjects count]; 
for (index = 0; index < numItems; index++) 
{ 
    NSDictionary *objectDict = [selectedObjects objectAtIndex:index]; 
    if (objectDict != nil) 
    { 
     NSLog(@"inspect item: {%@ %@, %@}", 
       [objectDict valueForKey:@"firstname"], 
       [objectDict valueForKey:@"lastname"], 
       [objectDict valueForKey:@"phone"]); 
        [myTextBox1 setStringValue:[objectDict valueForKey:@"firstname"]]; 
        [myTextBox2 setStringValue:[objectDict valueForKey:@"lastname"]]; 
    } 
} 

}

Questions connexes