我想自定义浮动组行背景的绘制而不能这样做。基本上我想要一个部分透明的背景(滚动或不滚动时总是保持相同的外观),但是当表视图不滚动时(虽然当滚动它看起来像预期时),某些东西会改变我的NSTableRowView
子类的外观。
这是解释问题的代码和图像。
- (void)drawBackgroundInRect:(NSRect)dirtyRect
{
[[NSColor colorWithCalibratedWhite:1.0 alpha:0.5] set];
[[NSBezierPath bezierPathWithRect:dirtyRect] fill];
}
对于表格单元格视图,我尝试使用NSTableCellView,NSView和简单的NSTextField(这是您在图像上看到的那个),但结果始终相同。
答案 0 :(得分:2)
我能够通过在标题单元格视图及其表格视图上启用Core Animation图层来修复它。
答案 1 :(得分:0)
如果除了用颜色填充行的背景之外没有做任何其他操作,则应设置backgroundColor
NSTableRowView
属性,而不是覆盖-drawBackgroundInRect:
。
如果您确实需要此覆盖以进行进一步的自定义,我注意到您忘记在实施中调用[super drawBackgroundInRect:dirtyRect]
,这可能是您所看到的行为的原因。