ouvrir une fenêtre depuis la MainWindow
bofy
Membre
Bonjour
Je sais faire, à beaucoup près..., faire ce que je veux avec une seule fenêtre MainWindow.
Je voudrais utiliser une deuxième fenêtre et communiquer entre les deux. Je sais le faire, id°.
Mais mes deux fenêtres s'ouvrent en même temps.
Or je voudrais que la deuxième fenêtre soit invisible au lancement du programme et qu'elle soit visible lorsque je clique sur un bouton de la MainWindow. Comment faire ?
Ca doit être évident ... ? Ma seule excuse : je suis novice en Cocoa.
Merci
Je sais faire, à beaucoup près..., faire ce que je veux avec une seule fenêtre MainWindow.
Je voudrais utiliser une deuxième fenêtre et communiquer entre les deux. Je sais le faire, id°.
Mais mes deux fenêtres s'ouvrent en même temps.
Or je voudrais que la deuxième fenêtre soit invisible au lancement du programme et qu'elle soit visible lorsque je clique sur un bouton de la MainWindow. Comment faire ?
Ca doit être évident ... ? Ma seule excuse : je suis novice en Cocoa.
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
1°) Sous I.B., dans le paneau de ta window attributes tu décoches "visible at launch"
2°) Dans ta "fentêtre principale" tu places un contrôle (un NSButton par exemple) et défini son action comme étant "orderFront:" de ton autre fenêtre.
(Alt-Clic-Drag de ton contrôle sur la fenêtre, puis tu choisis "orderFront" dans la liste des actions diponibles pour celle-ci)
Ca marche parfaitement. Je réussi même à fermer la fenêtre en cliquant sur un autre bouton !
Merci également pour ces explications.
Cependant, quand je ferme cette nouvelle fenêtre et que je tente de la réouvrir en cliquant sur le NSButton, l'application plante (le debugger est lancé)
Toujours dans IB, l'option "Release when closed" (dans attributes de l'inspecteur) doit être décochée pour la fenêtre.
Sinon, à sa première fermeture, elle sera purgée (et donc inutilisable si tu tentes de la réafficher).
Merci mais décocher cette option n'a-t-elle pas d'incidence sur la mémoire par exemple? Car j'imagine que la "purge" a son importance.
Si tu décoches, c'est à toi de gérer le release par programmation.
Quand tu fermes la fenêtre, tu devras déterminer si tu en aura encore besoin plus tard (auquel cas tu ne le release pas), où si tu n'en auras plus utilité (et là , tu feras un [maWindow release]; ).
Est-ce que quitter l'application elle-même permet de faire le "release" automatiquement?