Utilizzando un pulsante Popup in Master-Detail
-
28-10-2019 - |
Domanda
L'applicazione Core Data basata su My Document (che utilizza i binding in IB) ha due entità, Employee (con un attributo dipendenteName ) e TimeSheet (con attributi timeDescription e entryDate ). Employee ha una relazione uno ( EmployeeDetails ) -to-many ( EmployeeTimeSheet ) con TimeSheet .
Sto costruendo una configurazione Master-Detail per una voce TimeSheet.
Per il Master ho una tableView a una colonna che ha il suo valore associato a: EmployeeController (un NSArrayController che utilizza l'entità Employee), editedObjects , EmployeeName .
Ho un detailController (un altro NSArrayController) che è impostato come NSMutableDictionary il cui contentSet è associato a EmployeeController , selezione , < strong> EmployeeTimeSheet .
Ho quindi Detail tableView che ha tre colonne, con il rispettivo valore associato a DetailController , editedObjects , dipendenteDetails.employeeName (colonna 0), entryDate (colonna 1) e timeDescription (colonna 2).
Ora tutto funziona bene, posso selezionare un dipendente dalla tabella principale e la tabella dei dettagli mostra tutte le voci del foglio presenze associate a quel dipendente. Posso aggiungere voci utilizzando il dipendente selezionato, tutto funziona alla grande.
Il mio problema è che, invece di avere una tableView come vista principale, volevo un NSPopupButton al suo posto da cui posso selezionare un dipendente e visualizzare tutte le voci temporali associate a quel dipendente.
Ho provato ogni combinazione di contenuto, valore, combinedObjects, selectedObject (s) ecc. con ogni combinazione dei controller che ho ma non riesco a far sì che NSPopupButton si comporti in modo simile alla tableView a colonna singola.
Ho cercato invano ulteriori informazioni su questo argomento e ho letto più volte la documentazione sui collegamenti, ma continuo a confondermi. Penso che dovrebbe essere relativamente semplice, ma non riesco a capirlo. Mi arrovello il cervello da quasi due giorni prima di postare qui.
Qualcuno può farmi notare dove sto sbagliando? Posterei il codice ma non è davvero appropriato visto che è principalmente una cosa IB.
Billy.
Soluzione 2
Ok, l'ho trovato.Sapevo che dopo aver postato qui l'avrei trovato subito.
Ho associato il contenuto di NSPopupButton a EmployeeController , combinedObjects , contentValue a EmployeeController , combinedObjects , dipendenteName , e da selectedIndex a EmployeeController , selectionIndex .
Funziona alla grande.
Billy.
Altri suggerimenti
A proposito: il detailController verrà popolato con un nuovo oggetto dipendente "automaticamente".Assicurati di impostare "managedObjectContext" sullo stesso controller (dipendenteController).