Frage

UI-Anforderung ist, 1 - Notwendigkeit eine zweispaltige Tabelle zu zeigen, soll zuerst col ein Bild anzeigen und 2. Spalte wird einen Text mit ihm hat, 2 - Es sollte transparent sein, damit es den NSView Hintergrund angezeigt werden soll,

Mein Code ist wie unten geschrieben,

I Unterklasse NSTableView zwingende folgende Methoden

-(void)awakeFromNib
{

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

}

- (BOOL)isOpaque {

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

In meiner Ansicht erstellen Tabellen-Instanz wie unten

@interface MyView : CommUICustomView {
    CustomTableView *myTableView;
}

// Umsetzung

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


}

Die Ausgabe des obigen Codes ist, Tisch mit weißen Hintergrund, auch wenn ich gesetzt NoofRow sind 0, das heißt Weißer Hintergrund wird immer gezeichnet, Als nächstes habe ich versucht, durch zwingende drawRect Methode der CustomTableView Hintergrunds in Tableview Umsetzung, es hat mir geholfen, und die Ausgabe ist Hintergrundbild, transparent und zeigen Eltern Ansicht Hintergrund zu erreichen, aber mit der weißen Farbe gemalt, so scheint es, seine immer weiße Farbe gezeichnet, weil von Spalte oder Zelle, Ich habe versucht, Zellen der Spalte zu sagen, nicht Backgorund zu ziehen, aber es hat nicht funktioniert, Jede andere Methode irgendwelche Jungs können mir vorschlagen.

War es hilfreich?

Lösung

Die Arbeits, ich war zwingender drawBackgroundInClipRect auch, aber nach dieser Methode kommentierte, konnte ich die erwartete Ausgabe sehen,

Jetzt kann ich sehen, transparenten Hintergrund mit Tabelle Zellendaten Anzeige auf sich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top