Item supplémentaire.

tabliertablier Membre
02:47 modifié dans API AppKit #1
Dans le tutorial Cacao, pour ajouter une copie du résultat du calcul des euros j'ai ajouté un menu  Editer avec seulement deux items:  Copier et Coller. Tout va bien, sauf qu'a l'éxecution, l'item supplémentaire Special Characters apparait en anglais sans que je l'ai demandé. Pour supprimer cet item, je pense utiliser removeItem (ou removeItemAtIndex) en le plaçant je pense dans applicationWillDidFinishLaunching.
Questions: Est-ce que je me plante. Faut-il déclarer un IBOutlet pour accéder au menu Editer? sinon, comment y accède-t-on? Et comment connait-on l'index d'un item dans un menu?

Réponses

  • Eddy58Eddy58 Membre
    juin 2006 modifié #2
    Oui, tu fais un outlet sur ton menu Editer, ensuite tu supprimes l'item indésiré, qui doit normalement être à  l'index 2. :)   
    [tt]
    [menuEditer removeItemAtIndex:2];
    [/tt]

    Par contre, comme c'est un item rajouté par le système, je me demande s'il va autoriser sa suppression ? A essayer...

    [EDIT] chose à  essayer, tu peux aussi créer ton menu à  partir de zéro, ensuite tu connectes les actions voulues à  ton First Responder. Ainsi l'item Special Characters ne devrait pas être rajouté. 
  • aranaudaranaud Membre
    02:47 modifié #3
    dans 1150720280:

    Par contre, comme c'est un item rajouté par le système, je me demande s'il va autoriser sa suppression ? A essayer...

    Tu peux modifier le menu comme tu veux. Il me semble que si tu veux, tu n'es même pas obligé de mettre de menu.
  • tabliertablier Membre
    02:47 modifié #4
    Merci. je vais faire!
    Pour info:
    J'ai essayé de créer mon menu en utilisant dans la palette des menus IB soit "Submenu" soit "Edit". Dans les deux cas, à  l'éxecution, l'item supplémentaire apparait.

    Bye et merci.  :P
  • tabliertablier Membre
    02:47 modifié #5
    Résultat des courses:

    Bon, j'ai créé mon menu principal sous IB et je ne suis pas arrivé à  mettre un outlet sur le menu Editer.
    J'ai donc opéré comme ci-dessous et ça marche:

    dans  applicationDidFinishLaunching  j'ai ajouté:

    NSMenu *editMenu = [[[NSApp mainMenu] itemAtIndex: 1] submenu] ;&nbsp; // pointe le menu &#39;Editer&#39;	<br />	[editMenu removeItemAtIndex: 3];				// supprime l&#39;item &#39;caractères spéciaux&#39;<br />	[editMenu removeItemAtIndex: 2];				// supprime la barre de séparation<br />
    


    A cette occasion j'ai découvert que dans le menu principal on ne compte pas l'item 'pomme' et que les indexes commencent à  zéro.

    Et voila  ::)
  • Eddy58Eddy58 Membre
    02:47 modifié #6
    dans 1150796696:

    Bon, j'ai créé mon menu principal sous IB et je ne suis pas arrivé à  mettre un outlet sur le menu Editer.

    Comment ça se fait ? ???
  • tabliertablier Membre
    02:47 modifié #7
    Je pense que je n'ai pas compris comment faire.
    J'ai construis le menu principal et ses sous menus en utilisant la palette de menu et en supprimant les items dont je en voulais pas. Les items copier et coller sont donc en place. A partir de là  je n'ai pas trouvé comment mettre un outlet d'accès au sous menu Editer.
      :crackboom:-
  • Eddy58Eddy58 Membre
    02:47 modifié #8
    Je ne vois pas le problème ???. Tu tires ton outlet de ton contrôleur sur ton item "Edition", et ça doit y aller...
  • 02:47 modifié #9
    Si tu tentes de mettre  un outlet sur un menu dans IB, il y a une subtilité: si le sous-menu associé est affiché, l'outlet sera associé au sous menu. Si le sous-menu n'est pas affiché, l'outlet sera associé au menu item ("Edit" dans ton cas).
Connectez-vous ou Inscrivez-vous pour répondre.