Ouvrons le menu principal "MainMenu" en double cliquant sur "MainMenu" de "MainMenu.nib".
Nous désirons obtenir un menu et sous-menu personnel ajoutés à la barre des menus.
Notons la règle générale :
"New Note", "Delete Note" sont les noms donnés dans "Title" de Attributes.
Note de rédaction : Je mets en vert les noms utilisateurs, et en rouge ceux de xCode.
Nom différent de celui choisi pour la programmation AppleScript.
Notez, il faut cocher "choose menu item". C'est là que vous mettrez votre code de traitement.
Faites glisser le "Submenu Menu" de la librairie dans la fenêtre menu, là où vous voulez l'intercaler, entre "Format" et "View" dans mon exemple.
Le résultat est votre menu personnel et un élément :
Ouvrons l'inspecteur onglet "Menu Item Attributes" et donnons le nom "Notes" à notre menu.
Faites bien attention de ne pas confondre "Submenu Menu" avec "Menu" le niveau le plus haut.
"Submenu Menu" suivant le niveau auquel vous le rajoutez va créer son menu et son élément en vertical si inséré dans la barre de menu, et son menu et élément en horizontal si inséré dans un sous-menu.
Maintenant, rajoutons des éléments à notre sous-menu personnel "Notes".
Glissez le "Menu Item" en ajout de l'élément déjà existant de votre sous-menu "Notes".
Sélectionnez le séparateur.
Glissez le "Separator Menu" en ajout après le deuxième élément déjà existant de votre menu "Notes".
Rajoutez encore deux éléments "Menu Item".
Cliquez sur chaque élément, et donnez-leur un "Title" dans l'onglet Attributes de l'inspecteur. Les noms sont "New Note", "Delete Note", "Import", et "Export".
Il reste, en cliquant sur chaque élément, et en sélectionnant l'inspecteur onglet AppleScript, à leur donner un nom de script. Les noms sont "Ajouter une ligne", "Suppression de lignes", Importer", et "Exporter".
Ces noms seront utilisés pour déclencher leurs traitements dans choose menu item .
on choose menu item theObject -------------- Gére la barre des Menus --------------------
if name of theObject is "Importer" then routine_Importer ()
if name of theObject is "Exporter" then routine_Exporter ()
if name of theObject is "Ajouter une ligne" then routine_AddOneNote ()
if name of theObject is "Suppression de lignes" then routine_DeleteNote ()
end choose menu item ----------------------------------------------------
Voilà, ce type d'opération peut être effectué autant de fois que vous voulez rajouter des sous-menus, et éléments de sous-menu spécifiques à votre application.
Il reste à programmer le code de ces scripts.
Notez : En fin de ce projet, j'ai remplacé le nom "Note" par "Référence" plus approprié pour une application de gestion d'achat de logiciel. Cela impacte que les titres, pas la programmation. Je ne refais pas la capture de tous les écrans. Désolé, c'est trop de travail juste pour un détail d'estétique.