【问题标题】:What is clipRect in NSTableView?NSTableView 中的 clipRect 是什么?
【发布时间】:2010-08-07 13:16:40
【问题描述】:

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

有人能解释一下吗?提前致谢。

- (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];
}

【问题讨论】:

    标签: objective-c cocoa nstableview


    【解决方案1】:

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

    【讨论】:

    • 或者,clipRect 可能只是自上次绘制周期以来刚刚变为可见的区域,不包括当时可见且仍然可见的任何区域。
    • 对,很可能。我认为这实际上更有可能,因为 NSTableView 是一个相当优化的控件。
    • 是的,clipRect 是刚刚变得可见的区域。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多