UI要件は、です。1 - 2列テーブルを表示する必要があります。最初のcolは画像を表示し、2列目は何らかのテキストを表示します。 2 - 表示するように透明にする必要があります。 NSViewの背景は、NSTableView transparent TableView
私のコードは
、以下のように書かれている私は、NSTableViewが
01以下のようなテーブルインスタンスを作成し、私の見解では、以下の方法-(void)awakeFromNib
{
[[self enclosingScrollView] setDrawsBackground: NO];
[[self enclosingScrollView] setBorderType:NSNoBorder];
}
- (BOOL)isOpaque {
return NO;
}
- (void)drawRect:(NSRect)drawRect
{
[super drawRect: drawRect];
}
をオーバーライドサブクラス
@interface MyView : CommUICustomView {
CustomTableView *myTableView;
}
//実装
- (void)InitContactTable
{
NSRect scrollFrame = [self bounds];
NSScrollView* scrollView = [[[NSScrollView alloc] initWithFrame:scrollFrame] autorelease];
[scrollView setBorderType:NSNoBorder];
[scrollView setHasVerticalScroller:YES];
[scrollView setHasHorizontalScroller:NO];
[scrollView setAutohidesScrollers:YES];
[scrollView setDrawsBackground: NO];
NSRect clipViewBounds = [[scrollView contentView] bounds];
pOnLineCTView = [[[CommUITableView alloc] initWithFrame:clipViewBounds] autorelease];
//[pOnLineCTView setBackGroundImageByName:@"largegears.png"];
NSTableColumn* firstColumn = [[[NSTableColumn alloc] initWithIdentifier:@"firstColumn"] autorelease];
[[firstColumn dataCell] setDrawsBackground:NO];
[myTableView addTableColumn:firstColumn];
NSTableColumn* secondColumn = [[[NSTableColumn alloc] initWithIdentifier:@"secondColumn"] autorelease];
[[secondColumn dataCell] setDrawsBackground:NO];
[myTableView addTableColumn:secondColumn];
[myTableView setDataSource:self];
[scrollView setDocumentView:pOnLineCTView];
[scrollView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
[self addSubview:scrollView];
[self setAutoresizesSubviews:YES];
}
上記のコードの出力は、私がNoofRowは0で設定されていても、つまり白の背景が 次は、私は背景を実施し、試してみました、描かれてきている、白い背景を持つ表ですCustomTableViewのdrawRectメソッドをオーバーライドすることでTableViewでそれを助けてくれました。出力は背景画像です。透明になり、親ビューの背景が表示されますが、白い色で塗りつぶされているようです。列やセルのために白い色が表示されます。 Backgorundを描画しないようにCell of Columnに伝えようとしましたが、うまくいかなかった 他の人が私に提案できる方法。
実装を上書きしない場合は、draxRect:を上書きしないでください。実際、オーバーライドしないメソッドはオーバーライドしないでください。不要なコードが追加されます。 ;-) –