【发布时间】:2014-10-04 17:11:56
【问题描述】:
我的应用程序中有一个 NSTableView,在用户在 NSTextField 中键入一个字母后,我正在加载数据。
这是我的 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 根本不起作用。
【问题讨论】:
标签: objective-c macos delegates nstableview reloaddata