gpt4 book ai didi

objective-c - NSTableRowView "Empty Rows"

转载 作者:行者123 更新时间:2023-12-03 16:35:29 30 4
gpt4 key购买 nike

我已经重写了 NSTableRowView,到目前为止它正在工作。我面临的问题是绘制空行的分隔符。

drawSeparatorInRect:dirtyRect

似乎只覆盖有内容的行,其余所有似乎都填充了系统颜色。

目前我有:

-(void)drawSeparatorInRect:(NSRect)dirtyRect
{
NSRect sepRect = self.bounds;


sepRect.origin.y = NSMaxY(sepRect) - 1;
sepRect.size.height = 1;
sepRect = NSIntersectionRect(sepRect, dirtyRect);
if (!NSIsEmptyRect(sepRect))
{
[[NSColor gridColor] set];

NSRectFill(sepRect);


}
}
正如我所说,这效果很好。我最初是从一些苹果样本中挑选出来的。

当我将分隔符颜色更改为“红色”时,您可以看到会发生什么:

enter image description here

最后填充行的下半部分被填充,但之后的其他行都没有被填充。

有人知道我错过了什么吗?

干杯,

一个

最佳答案

只有包含内容的行才有行 View 。因此,自定义行 View 不会影响表格内容末尾之后的行分隔符的绘制。

要自定义这些分隔符的绘制,您需要重写-[NSTableView drawGridInClipRect:]。您可以计算超出内容末尾的行的分隔符位置,并以与自定义行 View 相同的方式绘制。

WWDC 2011 Session 120 – View Based NSTableView Basic to Advanced 的视频中通过示例代码对此进行了解释。 。 Apple 的 HoverTableDemo sample project 中也对此进行了演示。 .

关于objective-c - NSTableRowView "Empty Rows",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29586093/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com