Sous-menus dans un NSPopupButton

UniXUniX Membre
Salut.

J'ai un NSPopupButton dans lequel j'ai plusieurs lignes de menu. Je souhaiterais ajouter un sous-menu (les menus avec la flèche à  droite et qui affichent ensuite d'autres menus), mais je n'y arrive pas ...

On peut mettre que des menus simples ?

Réponses

  • LeChatNoirLeChatNoir Membre, Modérateur
    22:22 modifié #2
    Ben j'aurai tendance à  dire : tu fait 2 menus : père et fils et tu fais
    [père setSubmenu:fils];
    Non ?
  • UniXUniX Membre
    22:22 modifié #3
    Ah oui, j'ai oublié de préciser, mais j'espérais pouvoir faire ça directement dans IB ....
  • LeChatNoirLeChatNoir Membre, Modérateur
    22:22 modifié #4
    ah ben là , ch'sais pas  :-\\
  • BruBru Membre
    22:22 modifié #5
    C'est surréaliste comme question...

    1. ne pas vouloir taper 3 lignes de code parce qu'on sait pas...
    2. utiliser IB mais ne pas savoir l'utiliser...

    Y'a des moments où il faudra se poser certaines questions existencielles !

    Bref, dans IB, il faut insérer un item de menu qui se nomme Submenu dans le menu (ah bon ? parce que Submenu, ça veut dire sous-menu ?).
    Ensuite, en cliquant sur ce nouvel item Submenu, le sous-menu apparait. Il suffit ensuite d'y ajouter les items qui vont bien.

    .
  • UniXUniX Membre
    22:22 modifié #6
    Ooouhh, Bru, tu me sembles à  bout ... :P

    1. actuellement je fonctionne avec les 3 lignes de code, ma question est là  uniquement pour comprendre des comportements d'IB bizarres, chose que je n'avais pas eu le temps de faire avant, et que j'avais remplacé par du code ...

    2. ça, ça doit certainement être vrai, et si je savais tout utiliser et que j'avais tout pigé, je poserais surement pas la question ici

    Toujours est-il, tes indications sont évidentes, et tellement évidentes que j'avais quand même testé la manip avant de poster .... Ca fonctionne très bien sur un menu de barre, mais pas dans un NSPopupButton ... ou alors je suis vraiment un manche !
  • BruBru Membre
    22:22 modifié #7
    dans 1153347021:

    ou alors je suis vraiment un manche !


    1. tu affiches la palette des menus (palette IB, premier paneau).
    2. tu déposes depuis la palette un NSMenu dans ton projet IB.
    3. tu modifies les items de ce NSMenu en les renommant, ou en ajoutant de nouveaux (par drag'n drop d'un NSMenuItem nommé Item dans la palette).
    4. tu ajoutes un NSMenuItem nommé Submenu. Celui-ci permet de créer un sous-menu.
    5. tu cliques sur ce nouveau Submenu : le sous-menu attaché apparait.
    6. comme pour un menu normal, tu renommes, supprimes, ajoutes des NSMenuItem.
    7. tu tires une ligne dans IB entre ton NSPopupButton et ton menu créé en étape 2.
    8. dans l'inspecteur, tu connectes à  menu afin d'attacher ce menu à  ton bouton.

    Chez moi, ça marche comme ça.

    .
  • UniXUniX Membre
    juillet 2006 modifié #8
    Ben voilà , je connaissais pas cette technique d'IB. Moi, je faisait mes menus directement sur le bouton, dans le petit menu qui apparaà®t lorsqu'on double-clic dessus.
    Et là , il refuse de prendre des sous-menus ....

    C'est une bizarrerie de plus d'IB ...

    Par contre, je pêche encore sur un petit détail. Mon bouton est de type pull down, et malheureusement la première ligne du menu est sélectionnée par défaut, alors que je voudrais qu'il n'y en ai aucune.
  • BruBru Membre
    22:22 modifié #9
    dans 1153412635:

    Par contre, je pêche encore sur un petit détail. Mon bouton est de type pull down, et malheureusement la première ligne du menu est sélectionnée par défaut, alors que je voudrais qu'il n'y en ai aucune.


    Non, ce n'est pas la première ligne du menu qui est affichée dans un NSPopupButton de type pulldown... C'est un titre, que IB, par défaut, initialise avec le libellé du premier item de menu.

    Là  où je te rejoins, c'est qui IB est buggé, et donc la propriété title de l'inspecteur ne fonctionne pas correctement.

    Donc, j'ose à  peine te demander de taper 1 ligne de code dans le awakeFromNib du contrôleur du bouton :
    <br />[tonPopupButton setTitle:@&quot;&quot;];<br />
    


    .
  • UniXUniX Membre
    22:22 modifié #10
    D'accord.

    Apparement, il faut ajouter un menu item au début du menu qu'il utilise pour faire le title, même si on le met vierge ensuite avec le code.

    Ca roule.
Connectez-vous ou Inscrivez-vous pour répondre.