[objective C] NSTableView

kazou_22

Membre confirmé
27 Novembre 2009
16
0
36
bonjour, je suis nouveau sur le forum et nouveau en programmation ( cocoa )

j'ai un problème en faite je veux afficher dans un tableau ce que l'utilisateur rentre dans un text box
mais il ne veux pas l'afficher en graphique alors que quand j'affiche mon tableau en console il est bien rempli je suppose que c'est un problème avec NSTableView mais je ne trouve pas lequel merci
mon bouton submit pointe sur createANewItem
et le data source pointe bien sur l'objet

Bloc de code:
@implementation AppControler
- (id)init{
    [super init];
    pense=[[NSMutableArray alloc] init];
    return self;
}

- (IBAction)createNewitem:(id)sender{
    NSString *string=[textfield stringValue];
    [pense addObject:string];
    NSLog(@"%@ %d",[pense description],[pense count]);
}

- (int)numberOfRowsInTableView:(NSTableView *)tv{
        NSLog(@"ici22");
    return [pense count];
}

- (id)tableView:(NSTableView *)tableView 
            objectValueForTableColumn:(NSTableColumn *)tableColumn
            row:(NSInteger)row
{
    NSLog(@"ici");
    
    NSString *v =[pense objectAtIndex:row];
    return v;
}
merci d'avance si quelqu'un pouvait m'aider


j'ai oublié le .h

#import <Cocoa/Cocoa.h>


@interface AppControler : NSObject {

IBOutlet NSTextField *textfield;
IBOutlet NSTableView *tableview;
NSMutableArray *pense;

}

- (IBAction)createNewitem:(id)sender;

@end
 
Il faut d'abord comprendre comment fonctionne une table view:

- c'est la table view qui réclame les données à sa datasource
- il faut donc faire de ton AppController la datasource de ta table view. Pour cela, sous IB, tire l'outlet datasource de la table vers ton instance d'AppController.
- quand les données de la data source sont modifiées, en particulier quand tu ajoutes un élément à la liste, il faut demander à la table view de se réafficher en lui envoyant un message -[reloadData].

Ça devrait marcher.


Par ailleurs, renseigne-toi sur le paradigme MVC (Modèle-Vue-Contrôleur), car ici tu mélanges le modèle (les données), et le contrôleur (AppController). C'est une notion essentielle dans Cocoa.
Dans tous les cas, je te conseille très fortement la lecture de Programmation Cocoa sous Mac OS X, d'Aaron Hillegass, aux éditions Pearson.
 
j'ai deja lu ce livre , mais je l'ai lu très vite ( en 3jours ) donc pas évident de tout comprendre.
dans tout les cas ca marche donc merci beaucoup