Ouvrir une deuxième fenêtre : Besoin d'aide SVP !
Bonjour,
Je suis en train de travailler sur mon premier programme cocoa, et un premier souci...
J'ai un bouton sur ma fenêtre principale, et j'aimerais, au clic, qu'il ouvre une deuxième fenêtre
J'ai donc créé une nouvelle classe irritée de NSWindowController avec l'option de création du fichier .xib associé.
J'ai donc 3 nouveaux fichiers : Scd_winWindowColtroller.h, Scd_winWindowColtroller.m et Scd_winWindowColtroller.xib
dans mon AppDelegate.h, j'ai ajouté
@property (strong) NSWindowController *secondaryWindowController;
puis dans mon AppDelegate.m, au niveau du code de mon bouton
- (IBAction)GO_act:(id)sender {
NSWindowController *secondaryWindowController=[[NSWindowController alloc] initWithWindowNibName:@Scd_winWindowController];
[secondaryWindowController showWindow:self];
}
Quand je clic sur le bouton, la fenêtre s'affiche et se referme tout de suite.
J'ai cherché et j'ai trouvé plusieurs réponses, mais aucune des solutions proposées ne fonctionne... je dois faire une erreur quelque part, mais où...
Merci pour votre aide,
Alex
Réponses
Tu fais une propriété... mais tu ne l'utilises pas, utilisant à la place une variable locale à ta fonction !
C'est un problème de gestion mémoire. Utilise la propriété que tu as déclarée.
Le problème, c'est qu'étant débutant, j'etais persuadé d'utiliser la variable de la propriété ...
Ce que j'avais compris:
En faisant @property.... Je pensais déclarer un pointeur sur un NWwindowcontroller.
Dans le fonction je l'instanciais + réservation mémoire (malloc) et je le faisais pointer sur ma nouvelle fenêtre ....
Pourriez vous me dire ou est mon erreur de raisonnemet svp ?
Alex
Si tu veux utiliser la propriété que tu as définie dans l'interface, tu dois écrire:
Faute de quoi ta méthode GO_act déclare un autre objet (de même nom, mais avec une adresse différente) qui ne vit que le temps que ta méthode s'exécute. A la sortie, son retain est à zéro et ARC le libère.
En effet, ta classe semble fâchée...
Ca passe si je dis que c'était fait exprès ? lol
En tout cas ça nous aurait privé d'une jolie blague...
C'est cool de voir un forum où règne la bonne humeur ! ça change de certains...
Et merci pour la solution, ça marche super !
Alex