0

との両方の使用の背景を正常に変更しましNSColorた(を使用)。ここで、スクロール アウト (上または下) するときに背景にもこの色を使用したいと考えています。現在、下の図のように白です。NSTableViewsetBackgroundColor:NSTableViewNSCelltableView: willDisplayCell:forTableColumn:row:

ここに画像の説明を入力

NSTableViewサブクラス化して実装する必要があることを示していると思われるこのリンクを見つけましたが
- (void)drawBackgroundInClipRect:(NSRect)clipRect、何か提案はありますか?

ソース:NSTableViewのテーマ

4

2 に答える 2

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

NSTableViewあなたの InterfaceBuilderのクラスを に変更MyColoredTableViewすれば完了です。

于 2013-11-02T18:32:12.040 に答える
0

> さて、スクロールアウト (上または下) するときも背景にこの色を使用したいと思います。

このためには、スクロール ビューをスクロールするときに呼び出されるメソッドが 1 つ必要です。そのためには、以下の通知を含めてください:-

-(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
}
于 2013-10-30T10:47:19.920 に答える