Come faccio a fare un NSPopupButton che ha un menu con immagini e testo?
-
22-09-2019 - |
Domanda
Ho una lista di applicazioni e mi piacerebbe fare un NSPopupButton
che mostra un menu di nomi delle applicazioni con la loro icona a sinistra di ogni elemento.
Sono stato in grado di impegnare la NSPopupButton
alla mia matrice di elementi, ma non c'è una voce vincolante per un'immagine. Ho pensato che avrei potuto mettere una cella in là e associare il cellulare come immagine e come testo, ma non riesco a trovare una cella appropriata in IB.
C'è un modo semplice e pulito per fare questo utilizzando le associazioni? Devo scrivere un cellulare personalizzato?
Soluzione
Non c'è modo per legare le immagini così come i titoli delle voci di menu utilizzando uno stock NSPopUpButton. Si dovrà sottoclasse e scrivere un IBPlugin per esporre la sottoclasse. E, naturalmente, si dovrebbe gestire la cella pure.
Ho trovato miscelazione Attacchi con NSPopUpButton ad essere un sacchetto di male per una serie di motivi, tra cui l'impossibilità di separatori e delle voci di menu out-of-modello come il “default” o “All”. Considerare l'utilizzo di un controllo diverso, ad esempio un elenco fonte, o il popolamento e ri-popolare il menu pop-up manualmente.
Altri suggerimenti
NSMenuItem ha vincolante Immagine (nella sezione "Parametri" waaaaaayyyyy verso il basso). Quindi penso che si dovrebbe associare quel valore ad un percorso nella vostra gamma di applicazioni in esecuzione. È possibile ottenere un'icona per l'applicazione utilizzando oggetto NSWorkspace
condivisa.