NSScrollView
显示基于自定义视图(图像、复选框和文本标签)的 NSTableView
。当我滚动时,重绘行时出现了延迟(错误?)。
正常:
滚动后出现错误:
该项目(以及 .xib 文件)从 Xcode 4 更新到 Xcode 5 格式。我认为这个 bug 在此之后出现了,但我不确定。
有什么建议可以解决吗?
NSTableViewDataSource、NSTableViewDelegate 协议的实现:
- (NSInteger) numberOfRowsInTableView: (NSTableView *) aTableView {
return [arrayOfObjects count];
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
CMListItem *currentObject = [arrayOfObjects objectAtIndex: row];
NSString *currentName = [currentObject name];
BOOL currentState = [currentObject state];
NSImage *currentImage = [currentObject getArtwork];
NSString *identifier = [tableColumn identifier];
if ([identifier isEqualToString:@"MainCell"]) {
CMTableCellView *cellView = [tableView makeViewWithIdentifier: identifier owner: self];
cellView.textField.stringValue = currentName;
cellView.button.state = currentState;
cellView.imageView.image = currentImage;
return cellView;
}
return nil;
}
NSScrollView
未被修改。
我的自定义表格单元视图,是NSTableCellView
的子类,具有一些额外的输出。
更新:这个方法对我有帮助:将所有NSTableView
的Can Draw Concurrently
设置为On
状态,然后将其转换为Off
状态。