Bindings : récupérer la sélection d'une tableView dans le code
cargo
Membre
La question est dans le titre...Je souhaite récupérer l'objet sélectionné dans la tableView à un moment donné. Il faut parler au controller ? Comment appelle-t-on le arrayController qui gère la class que l'on implémante ? On l'instancie dans le code et c'est tout ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
C'est bindé à un bouton Add qui invoque la fonction signUpToTeach: avec en argument et en target 2 controllers. Y a pas d'outlets nulle part.
Un tableau, tu veux dire un NSArray ?
Quelque chose comme ça ?
(NSArray*)monObjet = [(NSArrayController*)leNomDuControllerDansIB selectedObjects]
Sinon pour selection il faut gérer les multiples sélections éventuelles ou les sélections vides c'est ça ?
PS: Dans le code plus haut Course*realCourse est une instance de la classe course, quand je fais ça dans une fonction qui n'est pas une fonction void ça marche pas, il ne veux pas que j'utilise un nom de classe, bizarre...
Les bindings (ce n'est pas lié spécialement à CoreDate) permettent de diminuer le nombre d'outlets nécessaires, mais il ne faut pas perdre de vue que les bindings sont un mécanisme qui peut être assez gourmand en ressources (plus en tout cas que sans bindings) et que parfois il vaut mieux passer par un bon vieil outlet. Comme ta question est "récupérer la sélection de la table à un moment donné", l'outlet est une solution simple à mettre en ½uvre.
L'idée derrière les bindings (en général) n'est pas de connaà®tre une valeur a un moment donné, mais de notifier les changements de valeurs. Pour ton problème cela répondrait plutôt à la question "notifier les changements de sélection", dans ce cas ce n'est pas spécialement compliqué - rajouter une variable d'instance représentant l'objet sélectionné et binder le selectedObject au File's owner (ou l'instance d'un contrôleur) et mettre comme keypath le nom de la variable.
Oui oui.
C'est au niveau du code de l'entité A (entitéA.m), que je veux récupérer la sélection d'un arrayController. Cet arrayController contrôle une autre entité B.
Dans IB, je dois lier les controllers de A et B entre eux avec un outlet ? Et ensuite dans le header de l'entité A, IBOutlet etc... ?
Et pour info j'aimerais aussi savoir comment on récupère la sélection du controller de A dans le code de A.
Voilà ! Récupérer la sélection dans le File's owner (NSPersistentDocument *MyDocument), no problem puisqu'il est instancié dans IB.
Je te conseille de revoir tes bases en tout cas. Notamment la notion de MVC...