NSArrayController, binding et multiple fenetre
sheb
Membre
Bonjour a tous,
Je rencontre un probleme pas simple a expliquer ...
J'ai :
- Un NSArrayController
- Une NSTableView avec des binding sur le NSArrayController
- Une fenetre d'edition de l'element selectionne dans la table view, qui contient des NSTextField qui ont eux des binding sur la clé selection du NSArrayController.
Jusque là tout va bien, je selectionne la ligne 1 de ma table, dans la colonne 1 de cette ligne ya marqué "test" et dans ma fenetre d'edition j'ai bien "test" dans le NSTextField correspondant. Si je mets la valeur "toto" dans ce textfield et que je ferme la fenetre, c'est toujours marqué "test" dans ma table. Par contre, si avant de fermer la fenetre je change le focus sur un autre NSTextField ca mets bien à jour la valeur dans ma table.
Je me relis et c'est franchement pas tres clair dit comme ca, si quelqu'un veut un exemple je lui envoie.
Je pense qu'il doit me manquer une notification ou un truc lié au KVO à envoyer a la main mais je ne trouve pas ...
Je rencontre un probleme pas simple a expliquer ...
J'ai :
- Un NSArrayController
- Une NSTableView avec des binding sur le NSArrayController
- Une fenetre d'edition de l'element selectionne dans la table view, qui contient des NSTextField qui ont eux des binding sur la clé selection du NSArrayController.
Jusque là tout va bien, je selectionne la ligne 1 de ma table, dans la colonne 1 de cette ligne ya marqué "test" et dans ma fenetre d'edition j'ai bien "test" dans le NSTextField correspondant. Si je mets la valeur "toto" dans ce textfield et que je ferme la fenetre, c'est toujours marqué "test" dans ma table. Par contre, si avant de fermer la fenetre je change le focus sur un autre NSTextField ca mets bien à jour la valeur dans ma table.
Je me relis et c'est franchement pas tres clair dit comme ca, si quelqu'un veut un exemple je lui envoie.
Je pense qu'il doit me manquer une notification ou un truc lié au KVO à envoyer a la main mais je ne trouve pas ...
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Inspecte ton NSTextField.
Premier onglet, rubrique Text Field > Action : Est-ce bien réglé sur Sent On End Editing ?
Merci pour la reponse.
En effet j'en suis arrivé à la meme conclusion, et mon NSTextField est bien réglé en "Sent on end editing". Mais quand je ferme la fenetre le text field garde le focus, et donc ne se valide pas.
Je suis en train de reflechir à un truc pour contourner ce probleme, mais ce n'est pas terrible et il y a surement une methode plus élégante avec cocoa :
Dés que la fenetre se ferme, recupérer le NSTextField qui a le focus et le valider "à la main".
Ce que tu veux faire me semble la bonne technique; plus simplement, essaie simplement de valider le first responder. Je ne sais pas précisément comment on fait, mais jette un oe“il du côté de NSEditor.
et ca me valide mon NSTextField automatiquement
Merci pour tout