# [objective C] NSTableView



## kazou_22 (27 Novembre 2009)

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 


```
@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)createNewitemid)sender;

@end


----------



## Céroce (29 Novembre 2009)

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.


----------



## kazou_22 (3 Décembre 2009)

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


----------



## ntx (3 Décembre 2009)

kazou_22 a dit:


> j'ai deja lu ce livre , mais je l'ai lu très vite ( en 3jours ) donc pas évident de tout comprendre.


Un conseil : replonge-toi dedans, c'est la base avant de continuer


----------

