A l'aide : Could not connect the action terminate

BornToBeCocoaBornToBeCocoa Membre
13:21 modifié dans API AppKit #1
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à  :
<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]

Réponses

  • ClicCoolClicCool Membre
    13:21 modifié #2
    Je suis pas sur de bien comprendre  :-\

    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 ?  :-\
  • TiffTiff Membre
    septembre 2004 modifié #3
    Oui, bizarre ce mélange Document - Pas Document.
    L'appli est censée pouvoir ouvrir plusieurs documents ou pas ?
  • BornToBeCocoaBornToBeCocoa Membre
    13:21 modifié #4
    dans 1096136797:

    Oui, bizarre ce mélange Document - Pas Document.
    L'appli est censée pouvoir ouvrir plusieurs documents ou pas ?

    Non, à  terme elle ne pourra ouvrir qu'un seul document.

    dans 1096132371:

    On dirait que tu parles du chargement de document, c'est ça ?

    Oui

    dans 1096132371:
    Si je ne me suis pas trompé dans ma compréhension de ton projet, je te propose:
    2°) Ou bien mets ta "fenêtre principale" dans un autre nib que le mainMenu.nib

    J'essaie de suite.

    Merci à  vous A+ pour la suite.
  • TiffTiff Membre
    13:21 modifié #5
    Non, à  terme elle ne pourra ouvrir qu'un seul document.

    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 ?  :o
  • ClicCoolClicCool Membre
    13:21 modifié #6
    Non, tu ne dis pas du tout 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 ...
  • BornToBeCocoaBornToBeCocoa Membre
    13:21 modifié #7
    J'ai essayé de créer un nib différent et là , effectivement ça marche. Cela me pose d'autres porblèmes mais ça marche.

    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.
  • TiffTiff Membre
    13:21 modifié #8
    Voir par exemple les méthodes init et sauvegarde ici
  • ClicCoolClicCool Membre
    septembre 2004 modifié #9
    Bonjour, celuiQuiEstNéPourEtreChocolat ;)

    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 :D
    Ben tiens au fait Tiff, tu m'as eu ce coup ci !!  ::) :-*
  • TiffTiff Membre
    13:21 modifié #10
    Très bien ton idée de code de base pour une Non document based appli

    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.. ?
  • ClicCoolClicCool Membre
    13:21 modifié #11
    De mon coté j'ai aussi reçu ce matin 8 messages de notification de posts anciens ++  ??? ???
Connectez-vous ou Inscrivez-vous pour répondre.