Pregunta

UI Requisito es, 1 - Necesidad de mostrar una tabla de dos columnas, la primera columna debe mostrar una imagen y col segunda tendrá un poco de texto con él, 2 - Debe ser transparente por lo que debe mostrar el fondo NSView,

Mi código se escribe de la siguiente manera:

I subclase NSTableView anulando métodos siguientes

-(void)awakeFromNib
{

    [[self enclosingScrollView] setDrawsBackground: NO];
    [[self enclosingScrollView] setBorderType:NSNoBorder];

}

- (BOOL)isOpaque {

    return NO;
} 
- (void)drawRect:(NSRect)drawRect
{
    [super drawRect: drawRect];
}

A mi entender la creación de instancia de tabla de la siguiente manera

@interface MyView : CommUICustomView {
    CustomTableView *myTableView;
}

// Implementación

- (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];


}

La salida del código anterior es, la tabla con fondo blanco, incluso si fijo NoofRow son 0, es decir, el fondo blanco se está dibujada, Después probé, la implementación de fondo en TableView anulando método drawRect de CustomTableView, me ayudó, y la salida es la imagen de fondo, para lograr la transparencia y el espectáculo de Padres fondo de la vista, pero pintado con el color blanco, al parecer, su color blanco verse envuelto porque de la columna o celda, Traté de decirle celda de la columna no llamar la Backgorund pero no funcionó, Cualquier otro método, los chicos me puede sugerir.

¿Fue útil?

Solución

Su trabajo, que estaba preponderantes con drawBackgroundInClipRect también, pero después comentado este método, pude ver el resultado esperado,

Ahora puedo ver, fondo transparente con ser datos de la celda tabla de visualización en él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top