我已经完成了一个项目,这是一种待办事项列表,但是它不起作用。我的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
如您所见,这非常简单。除了tableauEtudiant和NSButton的引用出口外,我没有在IB中进行任何绑定。
问题是:一个月前,我制作了一个类似的程序,可以完美地工作,我在相同的模板上制作了这个程序,但是它不起作用。看来NSMutableArray没有与NSTableView链接(例如ajouterEtudiant中的NSLog效果很好)。
任何想法?
谢谢。
最佳答案
首先猜测:您没有将表的dataSource出口连接到包含您发布的代码的控制器实例。