Domanda

Ho una domanda qui che ha bisogno di leggere in un mucchio di dati da un file esterno e visualizzarlo come un NSPopUpButton in un'interfaccia utente di cacao. La cattura è che i dati che vengono letti in bisogno di avere una bandiera che gli stati, se si ritiene "nascosti" o no.

Se i dati è nascosta, ha bisogno di essere aggiunto alla NSPopUpButton come NSMenuItem, ma la bandiera hidden deve essere impostato per YES in modo che normalmente non viene visualizzato nel menu NSPopUpButton. Se l'utente tiene premuto una "chiave magica" sulla loro tastiera (di solito ALT, in questo caso), allora quegli oggetti nascosti devono essere unhidden. Se l'utente lascia andare il tasto ALT, quindi hanno bisogno di essere automaticamente ri-nascosto, ad eccezione di quello che possono essere stati selezionati - che sarebbe diventato nascosto se un altro NSMenuItem sono stati scelti

.

Sono una specie di avere un mucchio di tempo a capire questo fuori, in realtà.

mi chiedevo se c'è un modo dritto in avanti di fare questo usando NSArrayController ed un NSPopUpButton, ma finora non sono stato in grado di trovare qualcosa di simile a una soluzione - non quando si tratta di gestire la proprietà nascosta della NSMenuItem oggetti.

Qualcuno sa come questo può essere realizzato utilizzando cacao Associazioni?

È stato utile?

Soluzione

È possibile collegare il popup per un controller di array e alterare il predicato di filtro. Dal punto di vista di un design MVC, non sarebbe utilizzare un attributo come "nascosta", che è una caratteristica vista, ma forse "avanzato". Normalmente, impostare un predicato di filtro sul controller array su "= avanzate no". Poi, quando l'utente tiene il vostro modificatore preferita, rimuovere il predicato. Il popup si aggiornerà automaticamente. Il controller di array deve essere associato a una proprietà di matrice su un altro oggetto (nel modello di dati). Il pop-up deve essere associato a arrangedObjects sul controller di array.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top