Come posso dividere una matrice legato in parti che riempiono automaticamente il tavolo?

voti
0

Ho usato questo 'esercitazione' di legare il mio array chiamato 'raccolta' a un NSTableView sulla mia interfaccia: http://www.cocoadev.com/index.pl?NSArrayController

La roba InterfaceBuilder non è così difficile. Diventa difficile quando provo a mostrare effettivamente i dati in mio allineamento nella vista.

nel mio file .h:

@interface MyDocument : NSDocument
{
    NSMutableArray *collection;
    //other variables
}

e nel mio file .m:

@implementation MyDocument
@synthesize collection;
     //quite some functions

     inside one function (that works):
     [collection addObject:fileName];

     //some other functions

     inside the init function:
     collection = [[NSMutableArray alloc] init];

Ora Credo che la matrice è legato bene alla interfaccia e la Tableview al suo interno, ma naturalmente la Tableview e le sue colonne bisogno di essere riempito in modo specifico. In questo momento niente mostra dopo l'aggiunta di un elemento. con la raccolta addObject: fileName funzione

Devo creare un sub-array come un elemento, riempiti con i campi? E come dovrei associare questi valori / campi alle colonne specifiche. (i campi sono ' artista ', ' titolo ', ecc)

Ho già legato ogni colonna Interface Builder per controller di array con regolatore chiave ' arrangedObjects ' e modello chiave Path ' artista ', ' titolo ', ecc.

Si prega di tenere la spiegazione più semplice dal momento che sto lentamente iniziando a pensare non potrò mai ottenere questa cosa controller di array ... Objective-C non sembra così difficile, ma il legame di cui ha bisogno è quello che proprio non capisco. esempi di Apple non sono sufficienti per i neofiti

È pubblicato 27/01/2009 alle 20:46
fonte dall'utente
In altre lingue...                            


2 risposte

voti
1

Basta mutando la matrice non dice nulla che la matrice è cambiato. È necessario inviare notifiche KVO per la mutazione.

Il modo giusto per farlo è quello di implementare metodi di accesso per la proprietà, quindi chiamare i propri metodi di accesso. In questo caso, ti consigliamo di implementare insertObjectInCollection:atIndex:e superare la lunghezza dell'array come indice ( [self insertObjectIntoCollection:fileName atIndex:[self countOfCollection]dopo anche attuazione countOfCollection).

Quando si implementa funzioni di accesso, quindi quando un oggetto si lega alla proprietà, cacao vi avvolgerà le funzioni di accesso nella magia KVO che invierà le notifiche appropriate per la mutazione.

Risposto il 28/01/2009 a 00:35
fonte dall'utente

voti
1

In genere per popolare i dati devi usare un dizionario (la chiave sarebbe il percorso chiave, e Object i dati) per ogni riga, o meglio ancora, creare una classe per rappresentare i dati e creare una nuova istanza per ogni riga. Associazioni possono essere un po 'difficile in un primo momento (se siete nuovi a Cocoa abituarsi ai metodi di origine dati prima), ma dare un'occhiata a questo tutorial e gli esempi qui . Entrambi contengono campioni è possibile scaricare ed esaminare esattamente come le associazioni è impostato in Interface Builder.

Risposto il 27/01/2009 a 22:19
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more