Question

Je suis en train de faire un bouton contextuel qui affiche toujours + comme son image et lorsque vous cliquez dessus, un menu contextuel apparaît qui vous permettra de décider quel type d'objet que vous souhaitez ajouter. Y at-il de toute façon de le faire en utilisant un NSPopupButton? J'ai vu dans les spécifications pour NSPopupButotn que la méthode setImage n'a pas d'effet il semble que ce risque ne va pas au travail en utilisant cette classe. Est-ce correct?

Était-ce utile?

La solution

Oui, l'aspect visible de NSPopUpButton est mauvais pour ce que vous voulez.

Qu'est-ce que vous voulez est un NSButton régulier avec un menu ci-joint. Dans Interface Builder effacer le titre, définissez le cadre sur la place, la position au centre version icône seule et l'image à NSAddTemplate.

Ensuite, créez un NSPopUpButton, il est réglé sur « Pull Down », caché, et l'aligner / définir sa taille au fond du NSButton.

Enfin, performClick: connexion dans le NSButton à performClick: sur le NSPopUpButton.

Ce ne sera pas gérer un clic-attente sur le bouton; pour que vous devez écrire un code pour utiliser un (non dessin) NSPopUpButtonCell.

Autres conseils

Pourquoi ne pas simplement utiliser un NSPopupButton? En utilisant 2 boutons pour effectuer une tâche ne semble pas juste, plus comme mentionné il ne se comporte pas de la manière normale en ce qui concerne la tenue sur le bouton.

Pour obtenir le bouton contextuel de travail comme vous le voulez ... définir pour être un type déroulant. Ne donnez pas le bouton contextuel lui-même un nom ou une image. Si le bouton contextuel ne porte pas de nom ou de l'image, puis le premier élément de menu devient le titre du bouton. Les éléments du menu peuvent avoir des images afin de ne pas donner le premier élément de menu ne importe quel titre, il suffit de définir l'image et de l'image qui est vous verrez sur le bouton contextuel. Pour le reste des éléments du menu, il suffit de les ajouter normalement après le premier élément de menu. Notez que si vous changez programme les éléments de menu dans le code, assurez-vous juste de quitter le premier élément de menu dans le tact et tout sera OK. Je le fais dans quelques de mes applications sans problème.

La clé est d'utiliser NSPopUpButtonCell's setUsesItemFromMenu :. Les documents d'Apple incluent un exemple de comment l'utiliser.

Un bouton contextuel prend l'image et titre du premier élément de menu dans le menu associé. Ainsi son mieux d'inclure l'image, que vous voulez apparaître comme vous Popup bouton, comme premier élément de menu, puis masquer sa visibilité.

Si vous allez pas encore clair, puis à travers la vidéo suivante une fois, il vous fera sûrement comprendre.

Ce tutoriel montre comment créer un élément de barre d'outils (NSToolbarItem) avec menu déroulant NSToolbar dans Interface Builder: lien

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top