Domanda

I potrebbe chiedere domanda molto semplice, ma non sono in grado di ottenere come sbarazzarsi di questo, il requisito è,

  1. Tabella dovrebbe visualizzare un'immagine e un po 'di testo accanto al. Per fare questo, ho aggiunto due colonne della tabella
  2. NSTableView dovrebbe essere trasparente. Per fare questo, ho fatto una classe CustomNSTableView, metodo drawRect sostituzione all'interno per non attirare sfondo, e dire a cellule non drawBackground.
  3. Ora il prossimo ostacolo è come visualizzare un'immagine, ho dovuto ignorare / maneggiato seguente metodo

.

- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{

    NSImage *pCellImage = // Get a valid Image ;

    if(tableColumn == nil ) return nil;

    NSString *colName = [tableColumn identifier];
    if([colName isEqualToString:@"firstColumn"]){
        NSCell *pCell = [[NSCell alloc]initImageCell:pCellImage];
        return pCell;
    }else{
        NSCell *pCell = [[NSCell alloc]initTextCell:@"Some text"];
        return pCell;

    }
}

ho aggiunto TableColumn == stato nullo, come nella documentazione sua proposta, prima volta per ogni riga, questo verrà chiamato con TableColumn nullo quando devo fissare una singola colonna per intera riga, ma se torno sua crash con il commento BAD_ACCESS,

Ora la mia domanda è come gestire condizioni pari a zero, Anche in questa funzione dopo aver impostato NSCell sia per colonna va a un'altra funzione delegato

- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

Credo, dopo aver impostato correttamente dataSet non ho bisogno di usare questa funzione,

Con la seguente implementazione suo fragore, ma io non sono in grado di capirlo, ciò che è sbagliato,

Io sono la creazione corretta DataSource e delegato,

È stato utile?

Soluzione

Hai provato a chiamare setBackgroundColor e passando il colore chiaro?

[myTableView setBackgroundColor:[[NSColor clearColor]];

Se si utilizza questo metodo, ricordati di dire al NSScrollView circostante non per disegnare il suo sfondo.

In alternativa, si consideri che fornisce lo sfondo della tabella come CALayer .

Per quanto riguarda il disegno l'immagine e il testo in una singola colonna, relazioni con gli sviluppatori di Apple hanno pubblicato un costume NSCell, ImageAndTextCell . È possibile utilizzare questa cella con le istanze NSTableView e NSOutlineView. offerte Questa cella personalizzato con il disegno di un'immagine e testo all'interno di una singola colonna.

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