NSColor
和NSTableView
使用setBackgroundColor:
成功更改了NSTableView
NSCell
的背景tableView: willDisplayCell:forTableColumn:row:
(使用NSTableView
) 。现在,我希望背景在滚出时(顶部或底部)也有这种颜色,如下图所示,目前为白色。
我发现此链接似乎表明需要继承- (void)drawBackgroundInClipRect:(NSRect)clipRect
并实施
{{1}},对此有何建议?
答案 0 :(得分:1)
我终于通过查看NSTableView类NSTableView.h
的头文件找到了问题的答案,并发现了对此方法的提及:
/* Override to customize background drawing.
*/
- (void)drawBackgroundInClipRect:(NSRect)clipRect;
然后我将NSTableView子类化并覆盖了以前的方法:
@implementation MyColoredTableView
/**
Sets the color of the background for elastic scrollers
*/
- (void)drawBackgroundInClipRect:(NSRect)clipRect
{
[[NSColor redColor]set]; //Set your color here
NSRectFill(clipRect);
}
@end
将InterfaceBuilder中NSTableView
的班级更改为MyColoredTableView
,您就完成了。
答案 1 :(得分:0)
为此,您需要有一个方法,当您滚动滚动视图时将调用该方法。因此,只需在下面包含此通知: -
-(void)viewDidLoad
{
// This notification will called when you scroll your scrollview
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(boundsDidChange:) name:NSViewBoundsDidChangeNotification
object:[yourScrollView contentView]];
}
-(void)boundsDidChange:(NSNotification*)not
{
//Write your code for changing background colors of tableview
}