Comment puis-je faire un NSPopupButton qui a un menu avec des images et des textes?
-
22-09-2019 - |
Question
J'ai une liste d'applications et je voudrais faire une NSPopupButton
qui affiche un menu de noms d'applications avec leur icône à gauche de chaque élément.
Je suis en mesure de lier le NSPopupButton
à mon éventail d'articles, mais il n'y a pas d'entrée obligatoire pour une image. Je pensais que je pouvais mettre une cellule là-dedans et lier la cellule comme une image et sous forme de texte, mais je ne peux pas trouver une cellule appropriée dans IB.
Y at-il une manière propre et simple de le faire en utilisant les liaisons? Est-ce que je dois écrire une cellule personnalisée?
La solution
Il n'y a aucun moyen de lier les images ainsi que les titres des éléments de menu à l'aide d'un stock NSPopUpButton. Vous devrez sous-classe et écrire un IBPlugin pour exposer la sous-classe. Et, bien sûr, vous devez gérer la cellule ainsi.
Je l'ai trouvé avec le mélange Manchettes NSPopUpButton être un sac de mal pour diverses raisons, y compris l'impossibilité de séparateurs et des éléments de menu hors modèle tels que « par défaut » ou « All ». Pensez à utiliser un contrôle différent, par exemple une liste des sources, ou le remplissage et repeupler le menu contextuel manuellement.
Autres conseils
NSMenuItem a l'image de liaison (dans la section "Paramètres" waaaaaayyyyy vers le bas). Je pense donc que vous devez lier cette valeur à un chemin dans votre gamme d'applications en cours d'exécution. Vous pouvez obtenir une icône pour votre application en utilisant des objets partagés de NSWorkspace
.