Caixa de seleção na coluna da tabela não se registrará clique
-
22-09-2019 - |
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);
*/
}
}
}
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 ...