Question

UI est requise, 1 - Nécessité de montrer un tableau à deux colonnes, la première colonne doit afficher une image et 2ème col aura un texte avec elle, 2 - Il doit être transparent, il devrait afficher l'arrière-plan NSView,

Mon code est écrit ci-dessous,

I sous-classe NSTableView remplaçant les méthodes suivantes

-(void)awakeFromNib
{

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

}

- (BOOL)isOpaque {

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

À mon avis créer instance de table ci-dessous

@interface MyView : CommUICustomView {
    CustomTableView *myTableView;
}

// IMplementation

- (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 sortie du code ci-dessus est, Table avec un fond blanc, même si i mis NoofRow sont 0, à savoir arrière-plan blanc est tracé obtenir, Suivant j'ai essayé, la mise en œuvre Contexte dans TableView en remplaçant la méthode drawRect de CustomTableView, il m'a aidé, et la sortie est l'image d'arrière-plan, pour atteindre fond vue transparent et spectacle Parent, mais peint avec la couleur blanche, il semble, ça devient de couleur blanche dessinée car de la colonne ou une cellule, j'ai essayé de dire non à la cellule de la colonne dessiner Backgorund mais cela n'a pas fonctionné, Toute autre méthode, tous les gars peut me suggérer.

Était-ce utile?

La solution

Son travail, je suis PRÉPONDÉRANTS drawBackgroundInClipRect aussi, mais après avoir commenté cette méthode, je pouvais voir le résultat attendu,

Maintenant, je peux voir, fond transparent avec les données de la cellule de table étant affichage sur elle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top