A l'aide : Could not connect the action terminate
BornToBeCocoa
Membre
Hello,
Je cherche une ame charitable qui pourrais me débloquer de cette situation. J'ai créé deux classes :
- Une classe principale qui contrôle la fenêtre principale dans laquelle apparaà®t une liste (NSTableView) d'objets.
- Une classe secondaire qui permet de créer les objets et qui implémente NSCoding.
La classe principale permet bien de créer les objets, de les gérer dans la liste et de sauvegarder la liste.
Problème : le chargement ne fonctionne pas.
L'appli passe par les classes init, loadDataRepresentation, initWithCoder... l'objet se décode... windowNibName appelle le fichier nib encore une fois init (!!! est-ce normal ?) et là :
et enfin windowControllerDidLoadNib et l'application est bloquée
Merci d'avance à celui qui pourra me donner une solution.
PS : pour les plus courageux, j'ajoute mon code en pièce jointe et si le coeur vous en dit, je suis preneur de tous conseils pour l'améliorer.
[Fichier joint supprimé par l'administrateur]
Je cherche une ame charitable qui pourrais me débloquer de cette situation. J'ai créé deux classes :
- Une classe principale qui contrôle la fenêtre principale dans laquelle apparaà®t une liste (NSTableView) d'objets.
- Une classe secondaire qui permet de créer les objets et qui implémente NSCoding.
La classe principale permet bien de créer les objets, de les gérer dans la liste et de sauvegarder la liste.
Problème : le chargement ne fonctionne pas.
L'appli passe par les classes init, loadDataRepresentation, initWithCoder... l'objet se décode... windowNibName appelle le fichier nib encore une fois init (!!! est-ce normal ?) et là :
<br />Could not connect the action terminate: to target of class MainWindow<br />Could not connect the action orderFrontStandardAboutPanel: to target of class MainWindow<br />Could not connect the action hideOtherApplications: to target of class MainWindow<br />Could not connect the action hide: to target of class MainWindow<br />Could not connect the action unhideAllApplications: to target of class MainWindow<br />
et enfin windowControllerDidLoadNib et l'application est bloquée
Merci d'avance à celui qui pourra me donner une solution.
PS : pour les plus courageux, j'ajoute mon code en pièce jointe et si le coeur vous en dit, je suis preneur de tous conseils pour l'améliorer.
[Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
On dirait que tu parles du chargement de document, c'est ça ?
Mais on dirait que tu parle d'une appli qui n'a pas la structure d'une document based Appli.
Au premier chargement (au lancement de l'appli) ça marche et pas après c'est ça ?
Alors je dirait que ça vient cette contradiction de structure.
Surtout si tu demande à ton appli de charger plusieurs fois le mainMenu.nib. !
En rechargeant le main menu nib tu recharges tout ce qui a avec et donc un deuxième menu, un deuxième first responder avec sa suite .... le bordel quoi.
Si je ne me suis pas trompé dans ma compréhension de ton projet, je te propose:
1°) Essaies peut-être une structure de type documentBased Appli
2°) Ou bien mets ta "fenêtre principale" dans un autre nib que le mainMenu.nib
ça t'aide ? :-\
L'appli est censée pouvoir ouvrir plusieurs documents ou pas ?
Non, à terme elle ne pourra ouvrir qu'un seul document.
Oui
J'essaie de suite.
Merci à vous A+ pour la suite.
Alors, pourquoi une sous-classe de NSDocument (et donc avec fenêtre), et pas un contrôleur normal, sous-classe de NSObject (et donc sans fenêtre) ? Ainsi la fenêtre principale pourrait rester dans MainMenu.nib, avec comme File's Owner NSApplication.
Je dis des bêtises ?Â
son pb vient en partie effectivement du fait qu'il ait utilisé une sous classe de NSDocument dans une appli non structurée en document based app..
Soit il faut un nib différent
Soit on met tout dans le mainMenuNib mais en évitant d'utiliser le mode de chargement de NSDocument qui charge à chaque fois un nib alors que le chargement des données seules suffirait ici ...
Au départ c'est l'option décrite par TIff (un contrôleur normal, sous-class de NSObject) que j'avais choisie mais du coup, je n'arrivais pas à sauvegarder. C'est pourquoi le résultat est un peu batard.
Ce que je n'avais pas compris c'est que le modeNSDocument charge à chaque fois le nib. Je pensais justement qu'il ne chargeait que les données.
J'ai l'impression qu'il faut que je recommence avec NSObject et que je trouve comment ne sauvegarder/charger que les données.
Merci les gars.
Repartir d'une sous classe de NSObject n'est pas très compliqué à gérer.
Tu peux utiliser la classe NSOpenPanel pour ouvrir un dialogue de choix de Fichier/Emplacement et récupérer le path choisi.
Puis tu peux utiliser une des multiples méthode writeToFile: (NSString*) lePath atomicaly: (BOOL) atomique des Array, Dico etc... ou - (BOOL) archiveRootObject: (id) mesDonnees toFile: (NSString*)lePath
[EDIT] Grilled :P
Très bien ton idée de code de base pour une Non document based appli
Ben tiens au fait Tiff, tu m'as eu ce coup ci !! ::) :-*
Tu ne l'avais pas encore vu ?
J'ai reçu ce matin une notification, pour un message posté le 21/09 qui n'est jamais apparu dans les Messages Récents.
Ben alors, SMF, c'est quoi ce b.. ?