Πώς μπορώ να διαιρέσετε ένα συνδεδεμένο πίνακα σε μέρη που γεμίζουν αυτόματα το τραπέζι;

ψήφοι
0

Χρησιμοποίησα αυτό το «φροντιστήριο» για να δεσμεύσει σειρά μου ονομάζεται «συλλογή» σε ένα NSTableview στη διασύνδεση μου: http://www.cocoadev.com/index.pl?NSArrayController

Τα πράγματα interfacebuilder δεν είναι τόσο δύσκολο. Είναι δύσκολο όταν προσπαθώ να δείξει πραγματικά τα δεδομένα στη σειρά μου στην προβολή.

σε .h αρχείο μου:

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

και το αρχείο .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];

Τώρα υποθέτω ότι η συστοιχία συνδέεται καλά με το περιβάλλον και την TableView μέσα σε αυτό, αλλά φυσικά η TableView και στήλες της πρέπει να συμπληρωθούν με ένα συγκεκριμένο τρόπο. Αυτή τη στιγμή τίποτα δεν δείχνει μετά την προσθήκη ενός στοιχείου. με τη συλλογή addObject: fileName λειτουργία

Θα πρέπει να δημιουργήσετε ένα υπο-πίνακα ως ένα σημείο, γεμάτο με τα πεδία; Και πώς θα έπρεπε να δεσμεύσει αυτές τις τιμές / τα πεδία με τις ειδικές στήλες. (τα πεδία είναι « καλλιτέχνης », « τίτλος », κλπ)

Έχω ήδη δεσμευμένο κάθε στήλη στο Interface Builder για να Array Controller με βασικό ελεγκτή « arrangedObjects » και Μοντέλο Βασικά Path « καλλιτέχνη », « τίτλος », κλπ.

Παρακαλώ κρατήστε την εξήγηση απλή δεδομένου ότι είμαι σιγά-σιγά αρχίζουν να πιστεύω ότι ποτέ δεν θα πάρει αυτό το Array Controller πράγμα ... Objective-C δεν φαίνεται και τόσο δύσκολο, αλλά η σύνδεση οποίο χρειάζεται είναι ό, τι ακριβώς δεν παίρνουν. παραδείγματα της Apple δεν είναι επαρκείς για να αρχάριους

Δημοσιεύθηκε 27/01/2009 στις 20:46
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
1

Απλά μετάλλαξη του πίνακα δεν λέει τίποτα ότι η σειρά έχει αλλάξει. Θα πρέπει να στείλετε ειδοποιήσεις κνθ για τη μετάλλαξη.

Ο σωστός τρόπος για να γίνει αυτό είναι η εφαρμογή μεθόδων πρόσβασης για το ακίνητο, τότε καλέστε το δικό σας accessors. Σε αυτήν την περίπτωση, θα θελήσετε να εφαρμόσει insertObjectInCollection:atIndex:και να περάσει το μήκος του πίνακα με το δείκτη ( [self insertObjectIntoCollection:fileName atIndex:[self countOfCollection]μετά και την εφαρμογή countOfCollection).

Όταν εφαρμόζετε accessors, στη συνέχεια, όταν ένα αντικείμενο συνδέεται με το ακίνητο, το κακάο θα τυλίξτε τα accessors σε κνθ μαγεία που θα στείλει τις κατάλληλες ειδοποιήσεις για την μετάλλαξη.

Απαντήθηκε 28/01/2009 στις 00:35
πηγή χρήστη

ψήφοι
1

Συνήθως για να συμπληρώσετε τα στοιχεία σας που θέλετε να χρησιμοποιήσετε ένα λεξικό (το κλειδί θα είναι η διαδρομή-κλειδί, και το αντικείμενο των δεδομένων) για κάθε γραμμή, ή ακόμα καλύτερα, να δημιουργήσει μια τάξη να εκπροσωπεί τα δεδομένα και να δημιουργήσετε ένα νέο παράδειγμα για κάθε γραμμή. Δέστρες μπορεί να είναι λίγο δύσκολο στην αρχή (αν είστε νέοι στο κακάο συνηθίσετε τις μεθόδους πηγή δεδομένων πρώτη), αλλά ρίξτε μια ματιά σε αυτό το σεμινάριο και τα παραδείγματα εδώ . Και τα δύο περιέχουν δείγματα που μπορείτε να κατεβάσετε και να εξετάσει πώς ακριβώς οι δέστρες έχει συσταθεί στο Interface Builder.

Απαντήθηκε 27/01/2009 στις 22:19
πηγή χρήστη

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