我正在以NSTableView
编程方式创建一个。是我分配andnumberOfRowsInTableView
时唯一调用的方法。仍然是空白和空的。我究竟做错了什么?delegate
dataSource
NSTableView
在 myDocument.m 中:
- (void)windowControllerDidLoadNib:(NSWindowController *)aController
{
NSTableView *tableView = [NSTableView alloc] initWithFrame:CGRectMake(0,0,400,400)];
// I've tried putting the delegate before the datasource. No change.
tableView.dataSource = self;
tableView.delegate = self;
// I've tried adding the table before assigning the delegate/datasource. No change.
[aController.window.contentView addSubview:tableView];
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSLog(@"making view for table...");
NSBox *box = [[NSBox alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
box.borderColor = [NSColor blackColor];
box.borderWidth = 10;
return box;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
NSLog(@"getting data...");
return @{ @"myKey": @"myValue" };
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
NSLog(@"getting count...");
return 2;
}
numberOfRowsInTableView
是唯一被调用的东西。为什么?我怎样才能解决这个问题?