comment en(dis)abled un menu de la barre des menus de l'application
bofy
Membre
Bonjour
Je sais créer ma barre des menus (par programme...) à partir d'un .plist (merci les amis), plus ou moins bien, mais ça marche.
Je voudrais maintenant qu'un des menus de la barre soit enabled, tandis que l'autre serait disabled (en grisé) (en vue bien sûr d'une bascule où une action sur un item du menu enabled, le rendrait disabled, tandis que l'autre deviendrait enabled)
Mais le setEnabled:NO ne semble pas marcher. Est-ce possible sans usine à gaz ?
Merci
NB : j'ai essayé une mini appli avec IB et je n'ai pas trouvé ...
Je sais créer ma barre des menus (par programme...) à partir d'un .plist (merci les amis), plus ou moins bien, mais ça marche.
Je voudrais maintenant qu'un des menus de la barre soit enabled, tandis que l'autre serait disabled (en grisé) (en vue bien sûr d'une bascule où une action sur un item du menu enabled, le rendrait disabled, tandis que l'autre deviendrait enabled)
Mais le setEnabled:NO ne semble pas marcher. Est-ce possible sans usine à gaz ?
Merci
NB : j'ai essayé une mini appli avec IB et je n'ai pas trouvé ...
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Quand tu créées par prog tes menus NSMenu, il faut absolument faire un setAutoenablesItems:NO dessus.
Sinon, les items du menu sont en "validation automatique", ce qui empêche de les valider/invalider manuellement par la méthode setEnable:.
J'avais oublié un truc...
Apple ne permet pas de "griser" un item de menu si il affiche lui même un sous-menu.
C'est dans les guidelines, et ça permet de dérouler le menu (même si le contenu est lui grisé) afin de le découvrir.
C'est donc pour ça que le setEnable:NO ne fonctionne pas.
Tu ne peux griser les items "normaux" (ceux reliés à une "action").
Pour confirmer, est-il possible de construire une application, n'importe et minimale, avec dans la barre de menu un menu en grisé (menu help par exemple, sans doute sans submenu) ?
Un exemple minimal, sans IB bien sûr, m'aiderai à faire si c'est possible ?
Ensuite je crois que je serai capable de faire ce que je veux à coup de programmation en reconstruisant le menu de l'application.
Je n'en fais pas une affaire de principe, mais je trouve que ce serait plus "joli" si on pouvait le faire (c'est par exemple le cas des versions "démo" sous Windows).
Sinon, j'abandonnerai et je ferai autrement.
Autant sous OS9 je crois avoir déjà vu des titres de menu grisés, autant sous OSX c'est contre les guidelines et je pense même que c'est bloqué techniquement. Tu dois griser tous les menuitems de ton menu "Help" mais ton titre de menu "Help" lui ne sera jamais grisé.