Compléter le fichier de classe du contrôleur de l'application

En effet, lorsqu'on démarre un projet, même bien ficelé dès le départ, il arrivera forcément un moment où des corrections ou ajouts seront nécessaires. Au départ donc, on construit une interface avec Interface Builder, on crée une instance de la classe du contrôleur et on génère les fichiers.

Mais quand on revient plus tard dans Interface Builder, on ne peut plus utiliser la fonction de création des fichiers de la classe du contrôleur, sauf à perdre tout ce qu'on a déjà pu faire. Comment faire alors ?

La solution est simple : il faut ajouter à la main les déclarations dans le header (le fichier avec l'extension .h). Ces déclarations sont de la forme :

    IBOutlet NSButton* anObject;


pour les objets (ou Outlet). NSButton est le nom de la classe de l'objet et anObject le nom de la variable d'instance.

Et si le contrôle doit répondre aux actions de l'utilisateur, il convient d'ajouter également la déclaration de l'événement :

- (IBAction)anEvent:(id)sender;


Ensuite, dans Interface Builder, double-cliquez sur l'icône du contrôleur de votre application (le cube bleu). Puis, clic droit sur le nom de l'instance de la classe (xxx) et dans le menu contextuel, choisissez "Read xxx.h". S'il y a des objets supprimés, vous devrez confirmez si vous voulez ajouter ou remplacer les objets par ceux du fichier lu. Normalement, si vous n'avez pas fait de bêtises, vous devriez pouvoir répondre "Remplacer".

Dès lors, vous êtes en mesure de relier vos objets aux variables d'instances et aux événements.

Bien sûr, vous auriez pu définir les outlets ou les actions dans Interface Builder, puis reporter les déclarations correspondantes à la main dans le header. Mais en procédant ainsi, vous évitez un double travail de déclaration qui risque d'entraîner des erreurs.

N'oubliez pas de programmer les actions que vous avez définies.