我的表视图中的每一行只是说"表格查看单元格"。我已经检查了我正在使用的数据源数组,它有55个对象,其中没有任何值具有" Table View Cell"。
@implementation BMAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
self.schemes = [BMSchemeHandler parseSchemeFileToArray];
self.schemeTableView.dataSource=self;
self.schemeTableView.delegate=self;
}
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
return [self.schemes objectAtIndex:row];
}
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{
return (self.schemes.count);
}
这是我的解决方案......
@implementation BMAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
self.schemes = [BMSchemeHandler parseSchemeFileToArray];
self.schemeTableView.dataSource=self;
self.schemeTableView.delegate=self;
}
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{
return (self.schemes.count);
}
- (NSView *)tableView:(NSTableView *)tableView
viewForTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row {
// Retrieve to get the @"MyView" from the pool or,
// if no version is available in the pool, load the Interface Builder version
if([tableColumn.identifier isEqualToString:@"myCell"]){
NSTableCellView* result = [tableView makeViewWithIdentifier:@"myCell" owner:self];
// Set the stringValue of the cell's text field to the nameArray value at row
result.textField.stringValue = [self.schemes objectAtIndex:row];
// Return the result
return result;
}else{
}
return nil;
}
答案 0 :(得分:0)
如果您正在查看Apple的tableview游乐场或类似的东西,那么您所缺少的是表格单元格文本字段中的绑定。在XIB中,在表格单元格中,它们使用关键路径objectValue将文本字段的值绑定到表视图。[NSString属性] - 您告诉表视图对象值是什么,因此您可以依赖关于那个约束力。
如果您没有将单元格中的文本字段绑定到您在objectValueForTableColumn:row:中返回的对象,则需要实现NSTableViewDelegate协议并实现TableView:viewForTableColumn:row以使单元格视图出列,获取指向文本字段的指针以设置其字符串值。
仅设置对象值不足。 NSTableCellView需要知道文本来自该对象的位置。