Hvordan kan jeg dele en innbundet utvalg i deler som automatisk fylle bordet?

stemmer
0

Jeg brukte denne 'tutorial' for å binde min array kalt 'samling' til en NSTableview på min grensesnitt: http://www.cocoadev.com/index.pl?NSArrayController

Den interfacebuilder ting er ikke så vanskelig. Det blir vanskelig når jeg prøver å faktisk vise dataene i mitt utvalg i visningen.

i min .h fil:

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

og i min .m filen:

@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];

Nå antar jeg matrisen er godt bundet til grensesnittet og tabellvisning inni den, men ofcourse tabellvisning og kolonnene må fylles på en bestemt måte. Akkurat nå ingenting dukker etter å ha lagt et element. med samling addObject: filnavn funksjon

Bør jeg opprette en sub-Array som ett element, fylt med felt? Og hvordan skal jeg binde disse verdiene / feltene til bestemte kolonner. (feltene er ' artist ', ' title ', etc)

Jeg har allerede bundet hver kolonne i Interface Builder til Array Controller med Controller nøkkel ' arrangedObjects ' og Modell Viktige Sti ' artist ', ' tittel ', osv.

Vær spesielt forklaringen enkel siden jeg sakte begynner å tro at jeg vil aldri få denne Array Controller ting ... Objective-C virker ikke så vanskelig, men binding som den trenger er det jeg bare ikke få. Apples eksempler er ikke tilstrekkelig til å newbies

Publisert på 27/01/2009 klokken 19:46
kilden bruker
På andre språk...                            


2 svar

stemmer
2

Vanligvis å fylle ut data du vil bruke en ordbok (nøkkelen vil være nøkkelbane, og objekt data) for hver rad, eller enda bedre, lage en klasse for å representere data og lage en ny forekomst for hver rad. Bindinger kan være litt vanskelig i starten (hvis du er ny på Cocoa venne seg til datakilden metoder første), men ta en titt på denne opplæringen og eksempler her . Begge inneholder eksempler du kan laste ned og undersøke nøyaktig hvordan bindingene er satt opp i Interface Builder.

Svarte 27/01/2009 kl. 21:19
kilden bruker

stemmer
1

Bare mutere matrisen ikke forteller noe som matrisen har endret seg. Du må sende KVO varsler for mutasjonen.

Den riktige måten å gjøre dette på er å implementere tilgangsmetoder for eiendommen, og deretter ringe dine egne accessors. I dette tilfellet, vil du ønsker å gjennomføre insertObjectInCollection:atIndex:og bestå lengden på array som indeksen ( [self insertObjectIntoCollection:fileName atIndex:[self countOfCollection]etter også implementere countOfCollection).

Når du implementerer accessors, så når et objekt binder til eiendommen, Cocoa vil vikle accessors i KVO magi som vil sende de riktige varslene for mutasjonen.

Svarte 27/01/2009 kl. 23:35
kilden bruker

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