2010-11-13 25 views
0

J'ai une tableview dont les colonnes sont liées à un contrôleur RAID. J'ajoute par programme des éléments au tableau:Mise à jour de NSTableView après l'ajout d'un élément au tableau

La personne est juste une classe personnalisée; PersonsPresent est dans une autre classe appelée Meeting, c'est un MutableArray qui contient des objets Person.

Person *newPerson = [[Person alloc]init]; 
[[[self meeting] personsPresent] addObject:newPerson]; 
[[self tableView] reloadData]; 

Cela fonctionne, mais les valeurs ne s'affichent pas dans ma vue de table tant que je n'ai pas trié les colonnes. Je pensais que reloadData le ferait pour moi.

Dans mon fichier xib, les paramètres objectcotnroller de mon nsarraycontroller sont définis sur Class et Person. Le contenu du contrôleur est lié au propriétaire du fichier et le chemin de la clé du modèle est meeting.personsPresent.

Toute aide serait appréciée.

Mark

Répondre

1

Vous muter le tableau derrière le dos du contrôleur RAID. Demander soit au contrôleur de tableau à -rearrangeObjects (stinky) ou utiliser sa méthode -addObject: (mieux).

+0

Ok ... donc je suis confus (pas de surprise) ce que cela devrait être. Mon contrôleur de tableau est dans MyDocument (qui est un NSDocument). C'est mon contrôleur. Il instancie la variable de réunion qui contient le tableau personsPresent. J'ai lié le contrôleur de tableau à cela. Donc, je ne sais pas comment ajouter des objets à mon tableau afin que mon contrôleur les connaisse. –

+0

Veuillez relire ma réponse. Vous pouvez ajouter des objets directement au contrôleur RAID en utilisant la méthode -addObject: de NSArrayController. –

+0

Ai-je besoin de créer un iboutlet à partir de mon contrôleur RAID pour pouvoir y accéder par programmation? –