J'essaie de remplir un NSVTableView à 2 colonnes via des liaisons, mais les données n'apparaissent pas dans la table.Exemple de liaison NSTableView simple
En XCode:
J'ai un NSMutableArray dans mon AppDelegate qui contiendra les données, ainsi que les @property et @synthesize correspondant.
Lors d'un événement, j'appelle [removeAllObjects] sur le NSMutableArray et le repeuple avec certains objets NSDictionary. Chaque dictionnaire contient 2 KVP: un nom et une valeur.
Dans IB:
J'ai ajouté une NSArrayController et lié son contenu à mon tableau AppDelegate et définissez le ModelKeyPath au nom du NSMutableArray dans le AppDelegate.
Sur NSTableView, j'ai lié le contenu au contrôleur de matrice. ControllerKey = "arrangedObjects", ModelKeyPath = vide.
Pour chacune des deux colonnes, j'ai lié la valeur à l'AppController et définir les ModelKeyPaths respectivement à NAME et VALUE. ControllerKey = "ArrangedObjects".
J'ai essayé plusieurs autres choses, comme l'utilisation d'un NSArray dans le délégué de l'application et de faire un nouveau chaque fois que je dois mettre à jour les valeurs. Il doit y avoir une toute petite chose que j'oublie. Qu'Est-ce que c'est?
jorj
J'ai tout exactement comme vous l'avez décrit. J'ai regardé un peu plus fort et j'ai découvert que j'initialisais "mutableArray" dans - (void) awakeFromNib. Lorsque j'ai déplacé cela (et l'ajout de certaines données de test) à - (id) init, j'ai vu les données de test dans la table.Quand j'appelle [mutableArray removeAllObjects] et que je le repeuple avec des données, dois-je appeler quelque chose pour dire au contrôleur de tableau de resynchroniser la table? Le jorj –
le willChange ... et didChange ... l'ont fixé! Merci beaucoup! –