4

NSScrollViewNSTableView基于自定义视图(图像、复选框和文本标签)显示。当我滚动时 - 我有重绘行的滞后(错误?)。

普通的:普通的

滚动后出现问题:滚动后出错

项目(和 .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带有几个额外插座的子类。

更新:这件事帮助了我:为所有状态设置,Can Draw Concurrently然后将其转换为状态。NSTableViewOnOff

4

1 回答 1

3

我想我有时会在启用“滚动复制”时看到这个问题。尝试在 IB 中禁用此选项(在属性检查器、滚动视图部分、行为中)。

于 2013-09-24T07:46:07.130 回答