Initialiser une fenêtre
UniX
Membre
Salut.
J'ai un menu qui m'ouvre une fenêtre avec le code suivant :
Lorsque je ferme cette fenêtre, et que la réouvre par le menu, je voudrais pouvoir y faire des initialisations. importController est le delegate de cette fenêtre, mais je n'ai pas réussi à trouver de méthode delegate qui s'active dans mon cas.
Comment dois-je m'y prendre ?
J'ai un menu qui m'ouvre une fenêtre avec le code suivant :
- (IBAction)importerImage:(id)sender<br />{<br /> if (!importController)<br /> {<br /> importController = [[ImportController alloc]init];<br /> }<br /> [importController showWindow:self];<br />}<br />
Lorsque je ferme cette fenêtre, et que la réouvre par le menu, je voudrais pouvoir y faire des initialisations. importController est le delegate de cette fenêtre, mais je n'ai pas réussi à trouver de méthode delegate qui s'active dans mon cas.
Comment dois-je m'y prendre ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Dans ce cas, il n'y a que lui qui ouvre la fenêtre IMHO.
Il a lui-même les méthodes windowWillLoad et windowDidLoad.
Mais, pour refermer cette fenêtre, je clique sur la case de fermeture, ou bien sur un bouton qui envoie :
Lorsque ensuite, je réouvre cette fenetre, c'est donc la même instance de ImportController, mais là windowDidLoad n'est pas appelé ... A priori car la fenetre est toujours chargée en mémoire, elle n'est juste pas affichée.
Donc, comment détecter que la fenêtre est réaffichée ?
Sinon, tu peux simplement exécuter ta propre méthode d'initialisation aprés la réouverture de la fenêtre :
[tt]
-(IBAction)importerImage:(id)sender
{
  if (!importController)
    {
        importController = [[ImportController alloc]init];
   }
    [importController showWindow:self];
    [importController initialisations];
}
[/tt]
Bon, ton astuce fonctionne, le seul petit bémol (mais je chipotte), c'est quand la fenêtre réapparaà®t, pendant une demi seconde on la voit dans son état post-initialisation ....
[tt]
[importController initialisations];
[importController showWindow:self];
[/tt]
Bon, allez, c'est le week-end, moi j'ai fait du Cocoa toute la semaine, et je crois que le cerveau n'en peut plus.
Je vais me coucher .... :crackboom:-
;D ;D ;D