Domanda

UI requisito è, 1 - Necessità di mostrare una tabella a due colonne, prima col dovrebbe visualizzare un'immagine e 2 ° col avrà un testo con esso, 2 - dovrebbe essere trasparente, così si dovrebbe visualizzare lo sfondo NSView,

Il mio codice è scritto come sotto,

I sottoclasse NSTableView sovrascrivendo seguenti metodi

-(void)awakeFromNib
{

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

}

- (BOOL)isOpaque {

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

A mio parere la creazione di un'istanza tabella come di seguito

@interface MyView : CommUICustomView {
    CustomTableView *myTableView;
}

// implementazione

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


}

L'output del codice è sopra, Tavolo con sfondo bianco, anche se ho impostato sono NoofRow 0, vale a dire Sfondo bianco è sempre disegnato, Poi ho provato, l'implementazione Sfondo a Tableview ridefinendo il metodo drawRect di CustomTableView, mi ha aiutato, e l'uscita è l'immagine di sfondo, per raggiungere vista sfondo trasparente e spettacolo Parent, ma dipinto con il colore bianco, a quanto pare, il suo colore bianco sempre disegnato perché di Colonna o cellulare, Ho cercato di raccontare cellulare della Colonna di non attirare Backgorund, ma non ha funzionato, Qualsiasi altro metodo qualsiasi ragazzi mi può suggerire.

È stato utile?

Soluzione

Il suo funzionamento, mi è stato Overriding drawBackgroundInClipRect anche, ma dopo ha commentato questo metodo, ho potuto vedere i risultati attesi,

Ora posso vedere, sfondo trasparente con i dati delle celle della tabella di essere visualizzazione su di esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top