Petites questions de grand débutant

2»

Réponses

  • RocouRocou Membre
    05:35 modifié #32
    dans 1240230173:

    Partir de l'icône " Application " (NSApplication) pour aller vers le delegate (le contrôleur bien souvent, mais ça peut être n'importe quoi d'autre... une vue perso, une fenêtre perso...)

    Je vois bien l'outlet delegate apparaà®tre mais le lien semble sans effet. En tout cas, je ne vois pas bien le rapport avec le fait de quitter l'application à  la fermeture de la dernière fenêtre.
  • schlumschlum Membre
    05:35 modifié #33
    Le rapport est simple... Quand l'application voit que la dernière fenêtre est fermée, elle demande à  son delegate si elle doit quitter.
  • RocouRocou Membre
    05:35 modifié #34
    dans 1240238397:

    Le rapport est simple... Quand l'application voit que la dernière fenêtre est fermée, elle demande à  son delegate si elle doit quitter.

    D'accord mais comment le delegate le sait-il?
  • schlumschlum Membre
    05:35 modifié #35
    dans 1240239187:

    dans 1240238397:

    Le rapport est simple... Quand l'application voit que la dernière fenêtre est fermée, elle demande à  son delegate si elle doit quitter.

    D'accord mais comment le delegate le sait-il?


    Ben... Tu lui dis dans le code de retourner YES ou NO  ??? (par défaut, si le delegate ne répond pas, c'est NO...)
  • NoNo Membre
    05:35 modifié #36
    dans 1240239187:

    dans 1240238397:

    Le rapport est simple... Quand l'application voit que la dernière fenêtre est fermée, elle demande à  son delegate si elle doit quitter.

    D'accord mais comment le delegate le sait-il?


    L'instance NSApplication (qui correspond à  ton application, bien sûr, et qui est accessible par NSApp) peut être avoir un delegate, c'est à  dire un autre objet qui va répondre à  certains message émis par NSApp.

    Dans l'exemple de la dernière fenêtre, ce qu'a écrit Schlum est entièrement exact : lorsque la dernière fenêtre est fermée, le gestionnaire de fenêtre va informer NSApp qu'il n'y a plus de fenêtre ouverte.
    NSApp va alors voir si il a un delegate. Si oui, alors il va tenter d'exécuter la méthode applicationShouldTerminateAfterLastWindowClosed: de ce delegate. La valeur retournée par ce delegate (YES ou NO) va déterminer le comportement de NSApp : il se ferme (fermeture de ton appli) ou non.

    La question maintenant, semble de savoir comment connecter un delegate à  NSApp, et surtout quel objet va jouer le rôle de delegate.
    Et là , il y a du boulot, car il y a un certain nombre de concepts que tu n'appréhende pas encore bien.
  • RocouRocou Membre
    05:35 modifié #37
    Ha ok, il faut quand même ajouter le bout de code applicationShouldTerminateAfterLastWindowClosed.
    Je pensais que c'était le bout de code OU passer par IB.

    Merci, ça fonctionne très bien, ouf!
  • schlumschlum Membre
    05:35 modifié #38
    dans 1240241472:
    Je pensais que c'était le bout de code OU passer par IB.


    ça ça concernait ta question du moment, à  savoir... comment définir un delegate.
Connectez-vous ou Inscrivez-vous pour répondre.