NSTableView中的clipRect是什么?

时间:2010-08-07 00:38:57

标签: objective-c cocoa nstableview

我试图理解嵌入在滚动视图中的表视图中clipRect的含义。我假设剪辑rect是表视图的可见部分。这意味着只要没有调整表视图的大小,rect的宽度就不会改变,但是在下面的代码中监视剪辑rect的宽度时,我注意到当我将水平滚动条移动到左边时宽度会改变对。当我上下移动垂直滚动条时,宽度值变为正常。

有人可以解释一下吗?提前谢谢。

- (void)drawRow:(NSInteger)rowIndex clipRect:(NSRect)clipRect { 
    NSLog(@"drawRow Clip Rect Width:%f Height:%f", clipRect.size.width, clipRect.size.height);
    [super drawRow:rowIndex clipRect:clipRect];
}

1 个答案:

答案 0 :(得分:0)

此方法用于连续绘制单元格。剪辑rect确定要绘制的行的部分。没有进一步的研究,我认为它总是包围完整的细胞而不是完全可见的部分。这使得确定绘制哪些单元格和绘图本身更容易。如果从左向右滚动,则具有不同宽度的不同单元格可能会变得可见或可能会隐藏。表视图的一行中所有(甚至部分)可见单元格的全宽应该总结该剪辑矩形的宽度。