NSTableView и NSMutable Array не связывают - PullRequest
1 голос
/ 16 июля 2011

Я создал проект, который является своего рода списком Todo, но он не работает. Мой tableView имеет синий ореол, но ничего не появляется.

Вот код TPRendu.h:

@interface TPRendu : NSObject 
{
    IBOutlet NSButton *boutonAjouter;
    IBOutlet NSTableView *tableauEtudiant;
    NSMutableArray *sourceTable;
}
-(IBAction)ajouterEtudiant:(id)sender;
@end

и код TPRendu.m:

#import "TPRendu.h"
@implementation TPRendu
-(id)init
{
    [super init];
    NSLog(@"init");
    //init du tableau
    sourceTable = [[NSMutableArray alloc] init];  
    return self;
}
-(IBAction)ajouterEtudiant:(id)sender
{
    [sourceTable addObject:@"test"];
    [tableauEtudiant reloadData];
    NSLog(@"Nombre éléments ajoutés: %d",[sourceTable count]);
}
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tv
{
    return [sourceTable count];
}

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tc row:(NSInteger)rowIndex 
{
    return [sourceTable objectAtIndex:rowIndex];
}
- (void)tableView:(NSTableView *)tableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)tc row:(NSInteger)rowIndex 
{
    [sourceTable replaceObjectAtIndex:rowIndex withObject:anObject];
}
@end

Как видите, все очень просто. Я не делал никаких привязок в IB, кроме выхода ссылок для tableauEtudiant и NSButton.

Дело в том, что месяц назад я сделал похожую программу, которая работает безупречно, я сделал это по тому же шаблону, и она не работает. Кажется, что NSMutableArray не связан с NSTableView (NSLog в ajouterEtudiant работает хорошо, например).

Есть мысли?

Спасибо.

1 Ответ

2 голосов
/ 16 июля 2011

Первое предположение: вы не подключили выход источника данных таблицы к экземпляру контроллера, который содержит опубликованный вами код.

...