【发布时间】:2013-09-23 14:17:41
【问题描述】:
NSScrollView 基于自定义视图(图像、复选框和文本标签)显示 NSTableView。当我滚动时 - 我有延迟(错误?)重绘行。
普通:
滚动后出现问题:
项目(和 .xib 文件)已从 Xcode 4 更新为 Xcode 5 格式。我认为这个错误出现在它之后,但我不确定。
有什么建议可以解决吗?
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 设置为On 状态Can Draw Concurrently,然后将其转换为Off 状态。
【问题讨论】:
-
是的,我确定,这只是一个示例。我的 NSScrollView 上有残像,就像这张图片一样(只是无法上传我自己的图片 - 评分不够)。
-
好吧,请告诉我们如何实现滚动视图委托方法。
-
我用我的代码修改了原始帖子,希望它有助于找到解决方案)我没有更多的代码,可以在这张桌子上工作。
标签: objective-c cocoa xcode5