Pergunta

Este é o delegado da minha tabela:

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

Funciona bem para exibir a célula normal, mas a TableView é congelada depois que eu adiciono uma célula com o tipo nsbuttonCell (para caixa de seleção). Como corrigi-lo ?

Qualquer ajuda seria apreciada.

Foi útil?

Solução

De acordo com Referência NSButtonCell, você pode especificar apenas uma cor de fundo para botões sem borda. Você já tentou usar células de botão sem borda?

Além disso, não consigo encontrar setDrawsBackground: método para NSButtonCell; Eu só posso encontrá -lo para NSTEXTFIELDCELL. Você já tentou remover a chamada?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top