IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Devenir un Xcoder

Un livre gratuit pour commencer avec Cocoa à l'aide d'Objective-C
Image non disponible


précédentsommairesuivant

XIII. awakeFromNib

XIII-A. Introduction

Apple en a fait beaucoup pour vous, ce qui facilite la création de vos programmes. Pour votre petite application, vous n'avez pas eu à vous soucier du dessin de la fenêtre et des boutons à l'écran, entre autres choses.

Le plus gros de ce travail est mis à disposition au travers de deux frameworks (un framework est un ensemble de bibliothèques, d'outils et de conventions permettant le développement d'applications). Le framework Foundation Kit, que nous avons importé dans l'exemple [12] du chapitre 4, fournit la plupart des services non associés à une interface utilisateur graphique. L'autre framework, appelé Application Kit, traite des objets que vous voyez à l'écran et des mécanismes d'interaction-utilisateur. Les deux frameworks sont bien documentés.

Revenons à notre application graphique. Supposons que l'on veuille que notre application affiche une valeur donnée dans l'objet champ de texte dès que la fenêtre s'affiche, au lancement de l'application.

Exercice

Toutes les informations concernant la fenêtre sont stockées dans un fichier nib (nib signifie NeXT Interface Builder). C'est une bonne indication pour savoir si la méthode dont nous avons besoin fait partie ou non d'Application Kit. Voyons comment obtenir des informations sur ce framework.

Dans Xcode, accédez au menu Aide (Help) et sélectionnez Documentation. Dans la fenêtre de documentation assurez-vous que Full-Text Search (recherche tout-texte) est activé (pour ce faire, sélectionnez Full-Text Search dans le menu déroulant du champ de recherche). Puis tapez Application Kit dans le champ de recherche et appuyez sur la touche Retour.

Xcode vous donne de nombreux résultats. Parmi eux se trouve un document appelé Application Kit Framework Reference. À l'intérieur de celui-ci vous trouverez une liste des services fournis par ce framework. Sous la rubrique Protocols, il y a un lien appelé NSNibAwaking. Si vous cliquez dessus, vous accédez à la documentation de la classe NSNibAwaking.

NSNibAwaking Protocol Objective-C Reference (Référence en Objective-C du protocole NSNibAwaking)

(protocole informel)

Protocol Description (Description du Protocole)

Ce protocole informel se compose d'une seule méthode, awakeFromNib. Les classes peuvent mettre en œuvre cette méthode pour initialiser les informations d'état après que des objets ont été chargés depuis une archive Interface Builder (fichier nib).

Si nous mettons en œuvre cette méthode, elle sera appelée lorsque notre objet sera chargé à partir de son fichier nib. Ainsi, nous pouvons l'utiliser pour atteindre notre objectif : afficher une valeur dans le champ de texte au lancement.

En aucun cas je ne veux insinuer qu'il est toujours aussi facile de trouver la bonne méthode. Souvent, il faudra pas mal naviguer et utiliser de façon créative des mots-clés pour les recherches, avant de trouver une méthode prometteuse. Pour cette raison, il est extrêmement important de vous familiariser avec la documentation des deux frameworks, ainsi vous saurez quelles classes et méthodes vous sont appropriées. Vous n'en avez peut-être pas pour l'instant, mais cela vous aidera à découvrir comment obtenir que votre programme fasse ce que vous voulez.
Bien, maintenant que nous avons trouvé notre méthode, tout ce que nous nous devons faire c'est d'ajouter la méthode à notre dossier de mise en œuvre file MAFoo.m [1,15].
 
Sélectionnez
//[1]
#import "MAFoo.h"
@implementation MAFoo
- (IBAction)réinitialiser:(id)expéditeur
{
    [textField setIntValue:0];
}
- (IBAction)setTo5:(id)expéditeur
{
    [textField setIntValue:5];
}
- (void)awakeFromNib    // [1.15]
{
    [textField setIntValue:0];
}
@end

Lorsque la fenêtre est ouverte, la méthode awakeFromNib est appelée automatiquement. En conséquence, le champ de texte affiche zéro quand vous posez vos yeux sur la nouvelle fenêtre ouverte.


précédentsommairesuivant

Licence Creative Commons
Le contenu de cet article est rédigé par Alex Clarke et est mis à disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transposé.
Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright © 2013 Developpez.com.