Comment puis-je diviser un tableau lié dans les pièces qui remplissent automatiquement la table?

voix
0

J'ai utilisé ce « tutoriel » pour lier mon tableau appelé « collection » à un NSTableView sur mon interface: http://www.cocoadev.com/index.pl?NSArrayController

Les trucs de InterfaceBuilder est pas difficile. Il devient difficile lorsque je tente de montrer réellement les données dans mon tableau dans la vue.

dans mon dossier .h:

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

et dans mon fichier .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];

Maintenant , je suppose que le tableau est lié bien à l'interface et l' tableview à l' intérieur, mais bien sûr les tableview et ses colonnes doivent être remplis d'une manière spécifique. En ce moment , rien ne montre après l' ajout d' un élément. avec collection addObject: filename fonction

Dois - je créer un sous-réseau comme un élément, rempli de champs? Et comment dois - je lier ces valeurs / champs aux colonnes spécifiques. (les champs sont « artiste » « titre », etc.)

Je l' ai déjà lié chaque colonne dans Interface Builder pour contrôleur RAID avec clé contrôleur « arrangedObjects » et modèle clé Chemin « artiste », » titre », etc.

S'il vous plaît garder l'explication simple puisque je semble lentement commencer à penser que je ne pourrai jamais faire cette chose du contrôleur RAID ... Objective-C ne pas difficile, mais la liaison dont il a besoin est ce que je ne comprends pas. Les exemples d'Apple ne sont pas suffisantes pour les débutants

Créé 27/01/2009 à 20:46
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

Il suffit de muter le tableau ne dit rien que le tableau a changé. Vous devez envoyer des notifications KVO pour la mutation.

La bonne façon de le faire est de mettre en œuvre des méthodes d'accès pour la propriété, appelez vos propres accesseurs. Dans ce cas, vous aurez envie de mettre en œuvre insertObjectInCollection:atIndex:et de passer la longueur du tableau que l'indice ( [self insertObjectIntoCollection:fileName atIndex:[self countOfCollection]après la mise en œuvre également countOfCollection).

Lorsque vous implémentez accesseurs, alors quand un objet se lie à la propriété, Cocoa enveloppera les accesseurs dans la magie KVO qui envoient les notifications appropriées pour la mutation.

Créé 28/01/2009 à 00:35
source utilisateur

voix
1

En règle générale pour remplir vos données que vous souhaitez utiliser un dictionnaire (la clé serait le KeyPath, et l' objet les données) pour chaque ligne, ou mieux encore, créer une classe pour représenter les données et créer une nouvelle instance pour chaque ligne. Les liaisons peuvent être un peu difficile au début (si vous êtes nouveau à Cocoa se habituer aux méthodes de source de données premières), mais un coup d' oeil à ce tutoriel et les exemples ici . Les deux contiennent des échantillons que vous pouvez télécharger et examiner exactement comment les liaisons est mis en place dans Interface Builder.

Créé 27/01/2009 à 22:19
source utilisateur

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