À partir de Xcode 3.2, le modèle d'application Mac est également livré avec un délégué d'application, déjà connecté, qui possède une telle méthode.
Pour le configurer dans un projet créé avant Xcode 3.2, créez une nouvelle classe pour votre délégué comme instance. Je nomme habituellement le mien "AppDelegate". Pour ce faire, cliquez avec le bouton droit de la souris sur le groupe Classes et choisissez "Ajouter un fichier", puis choisissez le modèle de fichier de sous-classe Cocoa NSObject.
Ouvrez l'en-tête que vous venez de créer (AppDelegate.h). Donnez-lui les variables d'instance que vous voulez. Puis cliquez sur Aller à Counterpart. Cela vous amène au fichier d'implémentation (AppDelegate.m). Ajoutez votre méthode d'instance applicationDidFinishLaunching:
ici. Contrairement à l'iPhone, il s'agit d'une méthode de gestionnaire de notification. Il prend donc une instance NSNotification et non une instance NSApplication.
Maintenant, pour le brancher. Dans le groupe Ressources, ouvrez MainMenu.nib. Faites glisser un objet de la fenêtre de la bibliothèque dans la fenêtre de la plume de niveau supérieur (celle avec des icônes, comme le propriétaire du fichier et le premier répondeur). Sélectionnez l'objet que vous venez de créer et ouvrez l'inspecteur d'identité. Définissez la classe de l'objet sur AppDelegate, en faisant correspondre le nom que vous avez utilisé dans Xcode. Cliquez avec le bouton droit sur le propriétaire du fichier et faites-le glisser depuis sa sortie delegate
vers votre nouvel objet.
Dans Xcode, ajoutez une instruction NSLog à votre méthode applicationDidFinishLaunching:
. Hit Enregistrer tout, puis Build and Go. Revenez à Xcode et ouvrez la console du débogueur. Si vous avez tout fait correctement et que je n'ai rien oublié, vous devriez voir le message du journal.
Il vous manque un support d'angle autour de 'super init' et vous ne mentionnez pas que la méthode' applicationDidFinishLaunching: 'doit être mis en œuvre par la classe ssame pour le faire fonctionner. – MKroehnert