Domanda

Ho un NSTableView binded ai dati fondamentali. Ho un altro NSTableView, al momento non binded a nulla (ma che può cambiare in caso di necessità).

Quando un preme un pulsante voglio la riga selezionata nella prima tabella da copiare (ma non rimosso) alla seconda tabella.

per es.

Prima:

Per prima tabella

Column1 | Column2 | Column3
Person  | Place   | Time

Secondo tabella

Column1 | Column2 | Column3
        |         | 

Dopo:

 Column1 | Column2 | Column3
 Person  | Place   | Time

Secondo tabella

 Column1 | Column2 | Column3
 Person  | Place   | Time

Come potrei fare per fare questo?

Grazie!

È stato utile?

Soluzione

Questo non è davvero un problema con NSTableView, questo è più una questione di progettazione del programma. Che vengono visualizzati i tuoi NSTableViews? Dati. Al fine di tenere l'oggetto selezionato in una vista tabella e farla apparire in un altro, è necessario capire che cosa è selezionato oggetto di dati, e aggiungerlo al set di dati per l'altra vista della tabella in modo che appaia anche lì.

Sembra che si sta utilizzando binding. Se è così, allora si dovrebbe vincolare il secondo punto di vista tabella per un controller di array che traccia gli oggetti che devono essere visualizzati lì. Se avete bisogno di legare che controller di array a una serie di contenuti dipende dalla vostra applicazione.

Quindi, per ottenere l'elemento selezionato, controlla il metodo selectedObjects su NSArrayController. Questo dà una matrice di oggetti attualmente selezionati. Avrete quindi bisogno di aggiungere gli oggetti selezionati per il controller di array per la seconda vista tabella. Una volta fatto questo, le associazioni lavoreranno loro magia e aggiornare la visualizzazione della tabella automaticamente.

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