Domanda

Questa è la mia vista tabella delegato:

- (void)tableView:(NSTableView *)tableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
    id theRecord;
    NSMutableString *gid;

    theRecord = [tableDataSource objectAtIndex:row];
    gid = [theRecord objectForKey:@"gid"];

    if (([gid intValue] % 2) != 0)
    {
        [aCell setDrawsBackground: YES];
        [aCell setBackgroundColor: [NSColor colorWithCalibratedRed: 237.0 / 255.0
                                                             green: 243.0 / 255.0
                                                              blue: 254.0 / 255.0
                                                             alpha: 1.0]];

    }
    else
    {
        [aCell setDrawsBackground: NO];
    }
}

Funziona bene per visualizzare cellula normale ma tableView ottenere congelata dopo aggiungo una cella di tipo NSButtonCell (per casella di controllo). Come risolvere il problema?

Qualsiasi aiuto sarebbe apprezzato.

È stato utile?

Soluzione

Secondo il NSButtonCell riferimento , è possibile specificare solo un colore di sfondo per i pulsanti senza bordi. Hai provato a utilizzare le pile a bottone senza bordi?

Inoltre, non riesco a trovare il metodo per setDrawsBackground: NSButtonCell ; Riesco a trovare solo per NSTextFieldCell . Hai provato a rimuovere la chiamata?

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