1
我在我的应用程序中有一个NSTableView,我在用户在NSTextField中键入字母后加载数据。NSTableView委托不工作/不填充单元格
这里是我的NSTableView的委托方法
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
NSLog(@"%lu rows!", (unsigned long)contactsArr.count);
return contactsArr.count;
}
-(NSInteger)numberOfColumns:(NSTableView *)tableView {
return 1;
}
-(NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSLog(@"filling tableview yo");
NSTableCellView *result = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
NSButton *nameField = [result viewWithTag:10];
NSButton *numberField = [result viewWithTag:20];
ABPerson *indexedPerson = contactsArr[row];
[nameField setStringValue:[NSString stringWithFormat:@"%@ %@",[indexedPerson valueForKey:kABFirstNameProperty]
,[indexedPerson valueForKey:kABLastNameProperty]]];
[numberField setStringValue:[NSString stringWithFormat:@"%@",[indexedPerson valueForKey:kABPhoneProperty]]];
if (result == nil) {
result = [[NSTableCellView alloc] initWithFrame:CGRectMake(0, 0, 267, 52)];
result.identifier = @"cell";
}
return result;
}
我已经检查了我的委托和数据源都设置为此类。我也确定我的插座是安装好的。当用户在键盘上输入某些东西时,我将NSMutableArray重置为搜索结果,并记录数组中实际存在ABPerson对象的事实。问题是没有单元格出现在屏幕上。 viewForTableColumn方法有时只运行。 reloadData根本不起作用。
非常感谢您解决了一半的问题!现在这些单元格完全是空白的。它加载正确数量的单元格,并且可以滚动浏览它们。但他们是完全白色的。单元格中的文本颜色是黑色的,而不是白色,我甚至在viewForTableColumn中将它们编码为黑色。 – 2014-10-04 17:33:27