Lancer une méthode au démarrage

Sken

Membre confirmé
8 Juin 2003
24
0
Bonjour,
Ma question a dèja été posée, la réponse est :"il faut implémenter la méthode awakeFromNib". D'accord mais comment ? on crée une nouvelle méthode dans le main.nib avec cet intitulé ou bien c'est dans les applescripts ?
Bref, je suis larguée, excusez-moi, j'espère que vous pourrez m'aider quand même ...
Exemple : je voudrais qu'au lancement, ma fenetre affiche un délai entre une date qui a été entrée dans le programme et le jour actuel. J'ai un NSTextField censé afficher ce délai. Le calcul est fait dans une méthode calculdelai(). Le problème est, où je mets cette méthode pour qu'elle se lance ?
Suis-je assez claire ???
Merci
Sabine
 
<blockquote><font class="small">Post&eacute; &agrave; l'origine par Sken:</font><hr /> Bonjour,
Ma question a dèja été posée, la réponse est :"il faut implémenter la méthode awakeFromNib". D'accord mais comment ? on crée une nouvelle méthode dans le main.nib avec cet intitulé ou bien c'est dans les applescripts ?


[/QUOTE]

Tout dépends du langage de ton application. le AwakeFromNib fonctionne quand tu es en obj-c mais pas en java-Cocoa. Or il me semble avoir vu sur macBidouille que tu programmais en java cocoa.

<blockquote><font class="small">Post&eacute; &agrave; l'origine par Sken:</font><hr /> Bref, je suis larguée, excusez-moi, j'espère que vous pourrez m'aider quand même ...
Exemple : je voudrais qu'au lancement, ma fenetre affiche un délai entre une date qui a été entrée dans le programme et le jour actuel. J'ai un NSTextField censé afficher ce délai. Le calcul est fait dans une méthode calculdelai(). Le problème est, où je mets cette méthode pour qu'elle se lance ?
Suis-je assez claire ???
Merci
Sabine


[/QUOTE]

Si tu veux lancer une methode lorsque ta fenetre se charge tu peux utiliser un delegué de la fenetre.
Dans IB tu racorde ta fenetre a ton objet et tu le défini comme delegate.

Dans ton objet tu implémente la methode windowDidBecomeMain

en java ca donne :

public void windowDidBecomeMain(NSNotification aNotification) {
String variable = calculdelai();

monTexteField.setStringValue(variable);
}

Avec cette méthode ta fonction se lancera a chaque fois que ta fenetre deviendra la mainWinfow (la fenetre qui a la main.)

J'espère répondre a ta question.
 
Merci beaucoup de ta réponse, je vais essayer de la mettre en pratique. Mais j'avais trouvé sur ce forum le même topic qui se terminait par le fait que la méthode awakeFromNib marchait même en java. http://forums.macg.co/ubbthreads/showflat.php?Cat=&amp;Board=UBB16&amp;Number=92783&amp;Forum=UBB16&amp;Words=d%E9marrage&amp;Match=Entire%20Phrase&amp;Searchpage=2&amp;Limit=25&amp;Old=allposts&amp;Main=92783&amp;Search=true#Post92783
Oui je fréqente aussi MacBidouille, comme toi. Les questions sur cocoa (je sens que je vais en avoir encore...) je pense qu'il vaut mieux les poser ici, non ?
Sabine
 
Pour le awakeFromNib en java... merci je ne connaissait pas. mais il y a toujours d'autres possibilité avec les delegates.

delegate
- de l'application pour les évènements lors de l'ouverture d'unu programme.
- de la fenetre pour les modifications intervenue dans les fenetres.

se sont ceux que j'utilise le plus pour les initialisations.

Pour tes questions concernant cocoa c'est vrai que sur macG les forum sont plus ciblé donc on cherche moins. mais il y a des réponses sur les deux serveurs. (certains posent leurs questions sur les deux forum.
 
Génial, ça marche ta méthode !!! Merci beaucoup pour le tuyau, mais je ne connais pas du tout cette notion de délégation, c'est dans la programmation objet, ou c'est spécifique à cocoa ? où trouver plus d'infos sur le sujet?
Sabine