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.

È stato utile?

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).

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