NSTableView: la mise à jour du Datasource par Action sur NSPopUpButtonCell
Rocou
Membre
Bonjour,
Je me suis aperçu que le datasource d'une NSTableView n'est mis à jour qu'après le déroulement d'une IBAction associée à un NSPopUpButtonCell.
Or je voudrais pouvoir récupérer l'item et le tag de mon NSPopUpButtonCell dans le code de cette IBAction.
Je ne vois pas comment faire
Je me suis aperçu que le datasource d'une NSTableView n'est mis à jour qu'après le déroulement d'une IBAction associée à un NSPopUpButtonCell.
Or je voudrais pouvoir récupérer l'item et le tag de mon NSPopUpButtonCell dans le code de cette IBAction.
Je ne vois pas comment faire
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Que cherches-tu à faire ?
À quel comportement t'attends-tu ?
Ton NSPopUpButtonCell correspond au paramètre (id)sender de ton IBAction non ?
Pour y avoir accès il suffit de caster ce paramètre, enfin si c'est bien ça ton problème...
Soit le NSPopupButtonCell suivant:
item: Jean, Patrick, Yves, Jacques
tag: 23, 44, 51, 67
Par défaut le NSPopupButtonCell affiche l'item Patrick.
L'utilisateur choisit un élement du NSPopupButtonCell, par exemple Jacques. Et bien si j'interroge le datasource, c'est Patrick qui est censé être sélectionné.
Si l'utilisateur choisit à nouveau un item, c'est le précédent (Jacques) qui se trouve dans le datasource et ainsi de suite.
Tout ceci dans le code de l'IBAction associée au NSPopupButtonCell. J'en conclue que la mise à jour du datasource se fait après l'exécution de l'IBAction du NSPopupButtonCell.
D'ailleurs, si j'interroge le NSPopupButtonCell après le déroulement de l'IBAction, le datasource est correct, il correspond au choix de l'utilisateur.
Mais moi, je voudrais connaitre l'item et le tag du NSPopupButtonCell choisi pendant le déroulement de l'IBAction.
(La raison étant que je dois déclencher une sauvegarde de la ligne modifiée ou créée de ma NSTableView. Cette sauvegarde intervient quand l'utilisateur clique sur une autre ligne ou sur un bouton de validation. Mais j'aimerais qu'elle intervienne également quand je modifie mon NSPopupButtonCell. Je précise que je n'utilise pas CoreData)
As-tu essayé de réaliser ta fameuse sauvegarde dans la méthode
de la dataSource, plutot qu'à partir d'une IBAction ?
Du coup, tu récupères la valeur courante (dans ton modèle de données) qui n'a pas été encore modifiée, et tu fais ce que tu veux avec.
Le nouvel objet étant anObject , tu peux le récupérer et mettre à jour ton modèle de données comme tu veux.(Il faut bien sur tester si la colonne est celle qui contient les popup et appeler la méthode de sauvegarde si c'est le cas)
Il n'y a pas de raisons que cela ne fonctionne pas.
Cela fonctionne évidemment très bien
Merci!