Domanda

Ho un NSTableView con due colonne e una fonte di dati che riempie con i dati. Quella parte funziona.

Come faccio a ottenere i dati in formato (NSString) dal NSTableView? Posso ottenere la riga selezionata ma NSTableView non sembra avere metodi per accedere ai dati.

Come i dati dal mio fonte di dati sembra tornare dati inutili (tipo id e NSLog() e NSRunAlertPanel() entrambi sostengono che i dati non è di tipo NSString.

Qual è il modo più semplice per ottenere i dati da un NSTableView?

Aggiornamento:

Si scopre che il motivo per ottenere i dati dal mio fonte di dati non riesce ha a che fare con il ritorno NSString essere parte di un NSArray nel metodo tableView().

Il mio file di input contiene le linee che ho contempla per le colonne a mio avviso tabella. Il NSTableView riceve i dati corretti ma quando chiamo il metodo tableView() io mi imbatto in un EXC_BAD_ACCESS errore che ho assumere ha a che fare con la gestione della memoria.

Un altro aggiornamento:

Non è stato la gestione della memoria. E 'stata l'incapacità di mia applicazione per identificare il NSTableColumn che voleva. Ho scritto un secondo metodo per accedere ai dati manualmente che utilizza un int per la colonna piuttosto che un NSTableColumn e che hanno lavorato.

È stato utile?

Soluzione

Si tratta di una violazione del paradigma MVC per essere utilizzo del vostro tavolo (a View) come uno spazio per riporre i vostri dati (Model). Si dovrebbe essere in grado di ottenere il valore dalla sorgente di dati nello stesso modo in cui la visualizzazione della tabella fa; che cosa fa il codice per tableView:objectValueForTableColumn:row: fare per ottenere i dati?

Se la tabella è modificabile, si otterrà chiamate dalla vista tabella per tableView:setObjectValue:forTableColumn:row: per consentire di modificare l'origine dati in modo appropriato.

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