Je rencontre des problèmes lors de l'affichage du contenu d'un NSArrayController dans deux fenêtres définies dans différents XIB.Utilisation d'un contrôleur NSArrayController à partir de plusieurs XIB
Dans ma fenêtre principale (en MainMenu.xib), j'ai un NSTableView qui est lié à un NSArrayController
Dans mon deuxième XIB, j'avoir une autre fenêtre qui contient un NSTableView. J'ai créé un nouveau NSArrayController et lié la table au contenu de ce NSArrayController.
Les deux NSArrayControllers sont liés au même NSArray. Tout va bien au début, mais le problème est que si un objet est ajouté au tableau en utilisant NSArrayController dans la fenêtre principale, la vue de la fenêtre secondaire des données n'est pas mise à jour. Cela est probablement dû au fait qu'il ne sait pas qu'il doit se mettre à jour, car NSArrayController n'a pas été utilisé pour ajouter le nouvel objet.
Ce que je voudrais faire est d'utiliser exactement la même instance de NSArrayController dans les deux fenêtres. De cette façon, si un objet est ajouté au tableau, les deux vues seront notifiées du changement.
Le problème est que je n'arrive pas à comprendre comment faire cela dans Interface Builder. Je ne peux pas lier un NSArrayController à un autre NSArrayController (j'obtiens une erreur d'exécution indiquant qu'il ne peut être lié qu'à un NSArray). La connexion de NSArrayController au membre NSArrayController du propriétaire du fichier n'aidera pas non plus, car cela effacera simplement le NSArrayController que je veux qu'il utilise.
Je suppose que je pourrais définir les liaisons moi-même dans le code, mais il semble qu'il serait préférable d'utiliser Interface Builder si possible. Y a-t-il un moyen de le faire dans Interface Builder, ou peut-être une meilleure façon de tout configurer ensemble?
Mise à jour: En réponse à la réponse de Chuck et les commentaires, j'ai essayé les éléments suivants: liØes le tableau Contenu de mon NSTableView aux arrangedObjects du membre NSArrayController (si je le NSArrayController lui-même, une erreur est apparu dans la log: « [NSArrayController compte]: sélecteur non reconnu envoyé à l'instance ») liØes chaque colonne de la table, avec un modèle de fichier propriétaire chemin clé de arrayController.arrangedObjects.propertyName
Ce encore n'a pas entraîné le contenu de la table recevant des mises à jour. Je pense que cela est dû au fait que je suis lié aux objets orderedObjects de NSArrayController, plutôt qu'à NSArrayController lui-même. Mais, si je me lie directement au NSArrayController, cela me donne des erreurs.
Normalement, je sélectionnais mon NSArrayController à partir de la zone de liste déroulante "Lier à", j'utilise arrangedObjects comme clé de contrôleur et la propriété elle-même comme chemin de clé de modèle. Je ne sais pas comment faire l'équivalent dans ce cas - si je peux.
Ai-je fait quelque chose de mal dans le processus ci-dessus?
Peut-être que quelqu'un pourrait corriger le titre de cette question, je pense que 'de' doit être 'pour'. –