IB, Nib et delegate

APAP Membre
13:36 modifié dans API AppKit #1
Bonjour,

Je pense que la réponse est toute simple et pourtant je n'y arrive pas malgré de multiples essais.
J'ai une appli cocoa avec un Nib MainMenu.xib dont l'AppDelegate est MyAppDelegate
J'ai ajouté un second xib pour les préférences (Preferences.xib) 

Je souhaiterais que mon Preferences.xib ait le même délégate (même classe et même instance) que MainMenu.xib à  savoir MyAppDelegate.

Est-ce que c'est possible et si oui quelles sont les étapes à  suivre pour y arriver?

Merci d'avance pour votre aide :)

Réponses

  • jpimbertjpimbert Membre
    13:36 modifié #2
    Qu'est ce que tu entends précisément par "délégué de fichier NIB" ?
  • APAP Membre
    13:36 modifié #3
    Le fichier dans lequel se situe les outlet et les actions
  • muqaddarmuqaddar Administrateur
    13:36 modifié #4
    Il est plus simple de rajouter une fenêtre dans les préférences  dans MainMenu.nib alors...
    Le plus propre étant encore de gérer les préférences avec un autre contrôleur (et un autre Nib).
  • AliGatorAliGator Membre, Modérateur
    13:36 modifié #5
    dans 1297061950:

    Le fichier dans lequel se situe les outlet et les actions
    Ca c'est pas le AppDelegate, c'est le File's Owner.

    Quand un XIB est désarchivé, tous les éléments qu'il y a dans ce XIB, à  part les "proxy objects" que sont File's Owner et FirstResponder, sont instanciées (alloc+initWithCoder), et les connections effectuées.

    Le File's Owner est un cas particulier puisque c'est un "objet proxy" qui représente un objet déjà  existant (qui ne sera pas instancié par le désarchivage du XIB) qui est passé en argument à  la méthode "loadNibNamed:owner:options:" et permet de faire ainsi le lien entre les objets créés par le XIB et les objets existants dans ton code.

    Avec MainMenu.xib on a un cas un peu spécial puisque c'est l'application qui charge toute seule ce MainMenu.xib donc c'est elle le File's Owner, et donc en général pour ce cas tu utilises un objet tierce, qu'on appelle souvent AppDelegate, comme delegué de l'application et tu t'en sers aussi pour y rajouter des IBOutlets pour accéder aux éléments de ton MainMenu.xib.
    Du moins au début de tes premiers projets tu fais ça. Après tu préfères créer un AppDelegate qui est delegate de l'application et ne sert quasi qu'à  ça et créer un autre objet, disons Controller, pour gérer d'autres trucs, et découper tout ça en plein de .XIB, etc
  • APAP Membre
    13:36 modifié #6
    Merci Ali et les autres, j'aurais appris plein de choses :)
Connectez-vous ou Inscrivez-vous pour répondre.