Détecter le clique du bouton afficher/masquer Toolbar
skimpy
Membre
Bonjour,
La barre des titres d'une fenêtre est composée d'un bouton à droite qui permet d'afficher / masquer la barre d'outils. J'aimerais pouvoir intercepter cet évènement afin d'effectuer une action si la barre d'outils est visible ou non.
N'ayant rien trouvé dans la doc sur un delegate ou notification au niveau de NSToolbar, je me suis dit que j'allais utiliser le delegate windowDidResize de NSWindow (la fenêtre se rétrécit ou s'agrandit quand la barre est affichée ou cachée).
Le problème que j'ai, c'est qu'il voit toujours la barre cachée quand je mets ce code dans mon delegate :
et voilà le résultat que j'ai (à chaque fois que j'utilise le bouton, j'ai une succession du message ci-dessous) :
2006-03-11 09:49:45.777 Mon Appli[9984] Toolbar invisible
2006-03-11 09:49:45.882 Mon Appli[9984] Toolbar invisible
2006-03-11 09:49:45.933 Mon Appli[9984] Toolbar invisible
2006-03-11 09:49:46.036 Mon Appli[9984] Toolbar invisible
Je voulais savoir si je procédais de la bonne façon et trouver une solution pour qu'il m'affiche correctement : visible / invisible ?
Merci.
[EDIT] : j'ai essayé avec la méthode - (void)toggleToolbarShown:(id)sender en la redéfinissant mais elle n'est pas appelé quand je clique sur le bouton.
La barre des titres d'une fenêtre est composée d'un bouton à droite qui permet d'afficher / masquer la barre d'outils. J'aimerais pouvoir intercepter cet évènement afin d'effectuer une action si la barre d'outils est visible ou non.
N'ayant rien trouvé dans la doc sur un delegate ou notification au niveau de NSToolbar, je me suis dit que j'allais utiliser le delegate windowDidResize de NSWindow (la fenêtre se rétrécit ou s'agrandit quand la barre est affichée ou cachée).
Le problème que j'ai, c'est qu'il voit toujours la barre cachée quand je mets ce code dans mon delegate :
<br />- (void)windowDidResize:(NSNotification *)aNotification<br />{<br /> if([nlToolbar isVisible])<br /> NSLog(@"Toolbar visible");<br /> else<br /> NSLog(@"Toolbar invisible");<br />}<br />
et voilà le résultat que j'ai (à chaque fois que j'utilise le bouton, j'ai une succession du message ci-dessous) :
2006-03-11 09:49:45.777 Mon Appli[9984] Toolbar invisible
2006-03-11 09:49:45.882 Mon Appli[9984] Toolbar invisible
2006-03-11 09:49:45.933 Mon Appli[9984] Toolbar invisible
2006-03-11 09:49:46.036 Mon Appli[9984] Toolbar invisible
Je voulais savoir si je procédais de la bonne façon et trouver une solution pour qu'il m'affiche correctement : visible / invisible ?
Merci.
[EDIT] : j'ai essayé avec la méthode - (void)toggleToolbarShown:(id)sender en la redéfinissant mais elle n'est pas appelé quand je clique sur le bouton.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ce delegate sera appelé à chaque appui du bouton avant apparition/masquage de la barre.
1. dans ton objet contrôleur (celui lié à ta fenêtre), mets ces 2 varibles d'instance dans l'@interface du header :
2. dans le awakeFromNib du contrôleur, juste apès l'initialisation de la barre d'outils, ajoute ces 5 lignes de code :
maFenetre est l'outlet qui pointe sur ta fenêtre (celle qui contient la barre d'outil).
3. enfin, implante la méthode toolBarDelegate: dans ton contrôleur :
Voilà .
.