Успешно променях фона NSColor
на моя NSTableView
използвайки setBackgroundColor:
и за двете NSTableView
и NSCell
(използвайки tableView: willDisplayCell:forTableColumn:row:
). Сега бих искал фонът също така да има този цвят при превъртане (отгоре или отдолу), който понастоящем е бял, както е показано на снимката по-долу.
Намерих тази връзка, която изглежда показва необходимостта от подклас NSTableView
и прилагане - (void)drawBackgroundInClipRect:(NSRect)clipRect
, всяко предложение за това?
Източник: Тематични NSTableView
Отговори:
1 за отговор № 1Най-накрая намерих отговора на въпроса, като разгледах заглавния файл за класа NSTableView NSTableView.h
и намерихме споменаване на този метод:
/* Override to customize background drawing.
*/
- (void)drawBackgroundInClipRect:(NSRect)clipRect;
След това подкатегория NSTableView и overrode предишния метод:
@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
Променете класа на вашия NSTableView
в интерфейса Builder към MyColoredTableView
, и сте готови.
0 за отговор № 2
> Сега бих искал фонът също така да има този цвят, когато> превърта (отгоре или отдолу),
За това трябва да имате един метод, който ще се извика, когато прелиствате изгледа си за превъртане. Затова просто включете това известие по-долу:
-(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
}