如何从我的 NSTableView 中手动删除 NSTableCellView(或其子类)?
当我清空包含信息的数组时,将 DB 排队以获取新信息,然后重新加载表数据,它只会使用与新数组列表中的索引值相似的索引值更新单元格。
前任。
我的数组中首先有 8 个对象,它们显示得很好。当我更新我的数组并且现在只有 3 个时,表中的前三个单元格被更新,而最后 5 个仍然是旧的。旧的不可选择,但仅可见。而且我怀疑我错过了一些重绘/dealloc ..
我在 TableView 上尝试了 setNeedsDisplay,但还没有运气。
我正在使用 ARC、Xcode 4.6.1 和 OS X 10.8.3
示例代码
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return [_array count];
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
[_tableView setNeedsDisplay];
NSDictionary *d = [_array objectAtIndex:row];
NSString *identifier = [tableColumn identifier];
if ([identifier isEqualToString:@"MainCell"]) {
CustomCellView *cellView = [tableView makeViewWithIdentifier:@"MainCell" owner:self];
[cellView.textField setStringValue:d[@"from"]];
[cellView.subject setStringValue:d[@"subject"]];
[cellView.text setStringValue:d[@"text"]];
[cellView.date setStringValue:d[@"date"]];
return cellView;
}
return nil;
}