Plusieurs documents, une fenêtre

parallel

Membre enregistré
4 Janvier 2005
6
0
42
Bonjour,

Je suis encore assez nouveau à la prog Cocoa, donc désolé si les questions paraissent simples.

J'essaie de développer en ce moment une application Cocoa document-based: une fenêtre par document pour leur édition, ce que je souhaite, mais je voudrais d'autre part une fenêtre pour l'affichage des résultats, fenêtre globale à l'application. Or si j'ai bien compris, tout ce qui est lié au NSDocument utilisé dans l'application est redupliqué pour chaque nouveau document traité. Comment faire pour résoudre ce problème ?

J'ai cru voir qu'une solution pourrait être de charger à part le fichier nib relatif à la fenêtre de résultat, avec la méthode loadNibNamed, mais je ne vois pas où mettre cette instruction sinon dans mon fichier myDocument.m, et dans ce cas ce nib serait rechargé à chaque nouveau document...

D'autre part, je souhaiterais savoir comment rajouter des connexions supplémentaires entre le menu dans mainMenu.nib et le document dans myDocument.nib (par exemple affichage des résultats déclenché dans la barre de menu, et pas seulement par un bouton dans la fenêtre de document). Comment faire ?

Merci d'avance
 
Bonjour,
tu peux creer un objet "AppController" qui va se charger de gerer cette fenetre supplementaire ainsi que les actions sur les menus (tu devrais trouver des infos par une recherche sur le web en entrant "cocoa + application + controller"). Dans cette objet, tu mets une action pour ouvrir cette fenetre, qui sera geree par un NSWindowController separe. Dans IB penses a le nommer "delegate" dans MainMenu.nib.
Pour ton menu supplementaire, il faut faire cela dans IB : tu ajoutes un menu et ses items, pour chaque item tu crees une nouvelle action qui sera geree par ton AppController.
 
Merci pour la réponse, mais le problème concerne plutôt la communication entre les nibs séparés: quand l'application est lancée, l'utilisateur décrit une image dans la fenêtre du document, puis grâce aux menus existants il peut sauver, ouvrir... Mais je souhaiterais ajouter aux menus (mainMenu.nib) la fonction "Afficher" qui récupèrerait les infos de la fenêtre de document (myDocument.nib) pour afficher l'image (mainMenu.nib). Je doute qu'une connexion par ctrl-clic comme on le fait à l'intérieur d'un nib fonctionne aussi pour relier 2 nibs différents, mais je ne vois pas comment faire autrement...

Plus simplement, comment faire pour rajouter aux menus existants (mainMenu.nib) des fonctionnalités qui puissent affecter le document en cours (myDocument.nib), alors que ces 2 éléments sont dans 2 nibs différents ?

Merci d'avance.
 
Effectivement il ne peut pas y avoir de lien entre 2 nib. Il faut passer par un objet tiers.
Définis tes actions communes dans l'application controller (qui devient le gestionnaire principal des menus de l'application). Il se chargera d'appeler une action sur le document courant, définie dans myDocument.
Pour travailler sur les documents ouverts utilise l'objet NSDocumentController.