UndoManager
Radada
Membre
Salut à tous,
développeur C++ depuis de nombreuses années, j'ai décidé de franchir le pas et de commencer la programmation en Objective C (de la balle entre parenthèse )
J'ai donc acheté le bouquin de Aaron Hilleglass "Programmation Cocoa sous MacOSX" 3ème édition. J'ai déjà contacté l'auteur pour ce pb, mais il n'a pas répondu...
Je suis en train de voir le chapitre consacré au NSUndoManager. D'après ce qu'il est écrit, il faut utiliser le codage KVO/KVC avec 2 ou 3 petites méthodes de NSUndoManager pour implémenter une gestion des "undo" rudimentaires. Notamment, le nomage des méthodes est très important dans le codage KVC/KVO puisque le système va chercher des méthodes avec des noms normés.
Donc, lorsque je fais ce qu'il est indiqué dans le bouquin, l'undo ne marche pas un brin (alors que dans le fichier d'exemple si ).
Je poste donc le petit (tout petit) bout de code. Si vous poivez jeter un oeil et voir ce qui pourrait merder, ce serait super sympa : ) --> http://www.2shared.com/file/5772724/4ce884bd/RaiseMan.html
Pour info, je suis sous 10.5.7 et XCode 3.1.2
Merci.
Radada
développeur C++ depuis de nombreuses années, j'ai décidé de franchir le pas et de commencer la programmation en Objective C (de la balle entre parenthèse )
J'ai donc acheté le bouquin de Aaron Hilleglass "Programmation Cocoa sous MacOSX" 3ème édition. J'ai déjà contacté l'auteur pour ce pb, mais il n'a pas répondu...
Je suis en train de voir le chapitre consacré au NSUndoManager. D'après ce qu'il est écrit, il faut utiliser le codage KVO/KVC avec 2 ou 3 petites méthodes de NSUndoManager pour implémenter une gestion des "undo" rudimentaires. Notamment, le nomage des méthodes est très important dans le codage KVC/KVO puisque le système va chercher des méthodes avec des noms normés.
Donc, lorsque je fais ce qu'il est indiqué dans le bouquin, l'undo ne marche pas un brin (alors que dans le fichier d'exemple si ).
Je poste donc le petit (tout petit) bout de code. Si vous poivez jeter un oeil et voir ce qui pourrait merder, ce serait super sympa : ) --> http://www.2shared.com/file/5772724/4ce884bd/RaiseMan.html
Pour info, je suis sous 10.5.7 et XCode 3.1.2
Merci.
Radada
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Les actions des boutons ne doivent plus être reliées aux méthodes -add: et remove: du NSArrayController.
P.S.: Retire le dossier Build quand tu nous files un projet, ça rend le fichier à télécharger très gros pour rien.
J'avais effectivement bien vu que les méthodes nétaient pas appelées, mais je ne comprends pas pkoi puisque les boutons sont bien reliés au méthode add et remove du NSArrayController. D'ailleurs, l'ajout et la suppression marchent.
A moins qu'il n'y ait une autre connection à réaliser ou nu paramétrage du NSArrayController?
P.S. : je dis ça de mémoire, je n'ai pas XCode sous la main puisque je suis au taf sous M$hit
Dsl pour le dossier build, j'ai fait ça en vitesse : ( J'y penserais la prochaine fois...
Le problème: tu n'as pas précisé quel était le contenu observé (géré) par le NSArrayController. Jusqu'à maintenant, comme il n'avait pas de contenu, il créait son propre NSMutableArray et ajoutait des instances de Person dedans. Tu ne te rendais compte de rien, mais le NSMutableArrayController employees de MyDocument restait inchangé.
La solution: lui dire que tu veux utiliser le NSMutableArray qui appartient au document. Pour cela, binde Content Array du NSArrayController sur [File's owner], avec le key path employees.
La technique utilisée par Hillegass est intéressante, mais c'est vrai que ça fait beaucoup à la fois, d'autant plus que la présentation du KVC est succincte dans le livre.
Oki doki, merci bcp Céroce. Je regardes ce WE car je ne pourrais pas tester avant : )
Je reposte pour te dire si c'est OK, mais il n'y a pas de raisons : )
Merci beaucoup mec