Pergunta

Tenho uma visão de tabela à qual adiciono colunas dinamicamente. Isso deve ser feito dessa maneira, porque não posso prever quantas ou quais colunas precisarei.

Algumas colunas são caixas de seleção Mas não posso clicar neles quando executar meu aplicativo. A coluna e a caixa de seleção estão definidas para serem editáveis, mas se eu clicar na caixa de seleção, a verificação não será definida. Estou esquecendo de algo?

Atualizar

Como estou (tentando) definir o estado na caixa de seleção:

- (void)tableView:(NSTableView *)theTableView 
   setObjectValue:(id)theObject 
   forTableColumn:(NSTableColumn *)theColumn 
              row:(int)rowIndex
{
    if (theTableView == resultsTableView) {

        if ([[theColumn identifier] isEqualToString:CHCheckBoxColumnIdentifier]) {

            NSInteger state = [[theColumn dataCell] state];
            if (state == NSOnState) {
                [[theColumn dataCell] setState:NSOffState];
            } else {
            [[theColumn dataCell] setState:NSOnState];
            }

            /*
            NSLog(@"%@", theObject);
            NSLog(@"%@", theColumn);
            NSLog(@"%i", rowIndex);
            */
        }
    }
}
Foi útil?

Solução

Suas colunas estão vinculadas a um controlador ou você está usando o protocolo NSTableDataSource? Eu suspeito que o último, mas você precisará especificar.

Seguindo minha suposição: um clique em uma caixa de seleção é tratado da mesma maneira que qualquer outra coisa no -tableView:setObjectValue:forTableColumn:row: método. Seu objeto será o estado do botão ...

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