Question

J'ai une demande ici qui a besoin de lire dans un tas de données à partir d'un fichier externe et l'afficher comme un NSPopUpButton dans une interface utilisateur Cocoa. Le hic ici est que les données qui sont lues doit avoir un drapeau que les Etats si elle est considérée comme « cachés » ou non.

Si les données sont cachées, il doit être ajouté à la NSPopUpButton comme NSMenuItem, mais le drapeau hidden doit être réglé sur YES il ne semble pas normalement dans le menu NSPopUpButton. Si l'utilisateur maintient une « clé magique » sur leur clavier (généralement ALT, dans ce cas), alors les objets cachés doivent être démasqués. Si l'utilisateur laisse partir de la touche ALT, alors ils doivent être automatiquement re-caché, sauf pour celui qui peut avoir été choisi - qui deviendrait caché si un autre NSMenuItem ont été choisis

.

Je suis un peu d'avoir un mal fou essayant de se faire, en fait.

Je me demandais s'il y a une voie à suivre tout droit de le faire en utilisant NSArrayController et un NSPopUpButton, mais jusqu'ici je n'ai pas pu trouver quoi que ce soit qui ressemble à une solution - pas quand il s'agit de la gestion de la propriété cachée de la NSMenuItem les objets.

Quelqu'un sait comment cela peut être réalisé en utilisant Cocoa Bindings?

Était-ce utile?

La solution

Vous pouvez câbler le menu contextuel à un contrôleur RAID et modifier le prédicat de filtre. Du point de vue de la conception MVC, vous n'utiliser un attribut comme « caché », qui est une caractéristique de vue, mais peut-être « avancée ». Normalement, définir un prédicat de filtre sur votre contrôleur RAID « = avancées non ». Ensuite, lorsque l'utilisateur maintient votre modificateur préféré, retirez le prédicat. Le pop-up mettra automatiquement à jour. Le contrôleur RAID doit être lié à une propriété de tableau sur un autre objet (dans votre modèle de données). Le pop-up devrait être lié à arrangedObjects sur le contrôleur RAID.

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