Casella di controllo sulla colonna della tabella non registrerà clic
-
22-09-2019 - |
Domanda
Ho una visualizzazione della tabella a cui aggiungo le colonne in modo dinamico. Deve essere fatto in questo modo perché non riesco a prevedere come molti o le colonne che ho bisogno.
Alcune colonne sono caselle ma non possono fare clic su di loro quando corro la mia domanda. La colonna e la casella di controllo sono impostati per essere modificabile, ma se clicco sulla casella di controllo il controllo non otterrà set. Mi sto perdendo qualcosa?
Aggiorna
Come sto (cercando) impostare lo stato sulla casella di controllo:
- (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);
*/
}
}
}
Soluzione
I tuoi colonne associate ad un controller o stai usando il protocollo NSTableDataSource? Ho il sospetto che questi ultimi, ma avrete bisogno di specificare.
Proseguendo la mia ipotesi: un clic su una casella di controllo viene gestita allo stesso modo di qualsiasi altra cosa nel metodo -tableView:setObjectValue:forTableColumn:row:
. Il vostro oggetto sarà lo stato del tasto ...