Domanda

Mi piacerebbe avere una 'visione dettagliata' per quando i utente fa doppio clic su una riga, solo che non sono sicuro di come ottenere i dati al NSViewController, in modo da poter visualizzare il contenuto. Sto usando CoreData e non riesco a pensare a un modo per fare questo.

È stato utile?

Soluzione

Ci sono un paio di passi che devi fare qui:

  1. Assicurarsi che la visualizzazione della tabella è guidato da un NSArrayController e che il controller per la vista tabella (un controller finestra o un controller della vista, o qualsiasi altra cosa) ha quel NSArrayController legato ad un Ivar in modo che vi si accede.

  2. Nel vostro controller tavolo impostare la doppia azione click a un metodo nel vostro controller e fissato l'obiettivo per il controller.

  3. Nel metodo click doppio è possibile accedere alla riga richiedendo l'-selectedObjects dal NSArrayController e che NSArray risultante dovrebbe avere un solo elemento in esso.

Da lì si può quindi creare la vostra vista di dettaglio o qualsiasi altra cosa si vuole fare con esso. È possibile creare un foglio e visualizzarla, aprire una finestra modale, ecc.

Altri suggerimenti

attacchi cacao.
Apple ha un grande href="http://developer.apple.com/mac/library/documentation/cocoa/conceptual/CocoaBindings/Tasks/masterdetail.html" di creare master-detail interfacciare s on-line.
Le schermate sono un po 'obsolete, se si sta utilizzando Xcode 3.2, ma non è poi così diverso.

NSViewController ha una representedObject proprietà, che permette di associare l'oggetto modello che si sta visualizzando.

Modifica OK. La mia risposta non è così grande, perché è solo una mezza verità.
Mentre si mostra come associare i controlli all'interno della vista di dettaglio, non fornisce una soluzione su come legare la scelta del controller di array per representedObject del controller della vista.
Sarei interessato a un binding-unica soluzione a questo problema.

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