En complément des menus, il est pratique de mettre les fonctions les plus utilisées dans une barre d'outils attachée à la fenêtre de votre application.
Apple a prévu une gestion complète des toolbars avec dans le menu "View" les sous menus "FShow Toolbar" et "Customize Toolbar...". Il n'y a pas de code à écrire pour gérer ces deux sous-menus. Il est juste nécessaire de les connecter aux "Target/Action" toggleToolbarShown et runToolbarCustomizationPalette.
Nous allons effectuer cette construction en image. Allez dans xCode, ouvrez votre projet, et dans Interface Builder sélectionnez la fenêtre de votre application. Puis,
dans la bibliothèque, prenez l'icône "Toollbar".
Important rappel : C'est une nouvelle fonction de Interface Builder de Léopard. En Tiger il faut programmer le toolbar en entier en applescript".
Et, collez la sur votre fenêtre.
Cochez, "Customizable" dans la fenêtre Toolbar Attributes de l'inspecteur.
Double cliquez sur le toolbar pour ouvrir le "Allowed Toolbar Items" .
Maintenant nous allons rajouter notre propre icône pour une fonction de notre application. Choisissez "Image Tool..." dans la librairie.
ET coller la dans "Allowed Toolbar Items". Notez elle se place à la fin.
Placez votre icône, par glissé/déposé, là où vous le désirez.
Maintenant, il faut connecter le Toolbar item avec une image. Je n’ai pas trouvé comment faire par glissé/déposé. Donc, dans le menu Attributes de l'inspecteur, à la place du nom de l'image "IBTollbarImageTemplate" tapez le nom de notre image, que nous avons au préalablement stockée dans "Resources". Dans mon exemple c'est "TBNewNote".
Dans "Label" et "Pal, Label" tapez le titre à afficher. C'est "New Note" dans mon exemple.
Admirez votre résultat.
Maintenant il faut activer les actions. Dans Interface Builder avec la touche CTRL enfoncée, cliquez sur "Customize Toolbar...", et, sans lâcher le click, glissez jusqu'à "First Responder". Un trait bleu doit apparaître.
Sélectionnez l'action "RunToolbarCustomizationPalette". Voilà c'est fini pour "Customize Toolbar..."
Faites la même chose pour "Show Toolbar" avec l'action "toogleToolbarShown".
Enfin, pour créer votre script attaché à votre icône, c'est comme d'habitude, dans l'inspecteur d'appleScript, sélectionnez votre script, cochez "Action - clicked", et donnez un nom de script à votre élément, ici "TBNouvelleNote".
on clicked theObject
if name of theObject is "TBNouvelleNote " then ......
Ce n'est pas "Clicked toolbar item" défini dans le panneau de la fenêtre qu'il faut utiliser.
J'ai fait cet essai,
on clicked toolbar item theObject
beep 3
end clicked toolbar item
et rien ne se passe, pas de beep. Ceci est du que à ce que c'est la programmation avant Léopard, où les toolbars devaient être implémentés en applescript.
Inversement, les Toolbars implémentés par Interface builder sont une nouvelle fonctionnalité de Léopard. Vous ne pouvez pas exécuter en Tiger. Pour adapter en Tiger, il ne suffit pas de mettre le projet en 10.4 universel, il faut créer les toolbars en applescript.
Maintenant, il nous reste à faire la même chose pour avoir une icône "Delete Notes" dans notre toolbar, et il faut connecter les scripts aux icônes