Sur la colonne de cases à cocher table ne sera pas enregister cliquez
-
22-09-2019 - |
Question
J'ai une vue table à laquelle ajouter des colonnes dynamiquement. Il doit être fait de cette façon parce que je ne peux pas prédire combien ou quelles colonnes je aurai besoin.
Certaines colonnes sont cases à cocher, mais je ne peux pas cliquer sur eux quand je lance ma demande. La colonne et case à cocher sont configurés pour être modifiable, mais si je clique sur la case à cocher le chèque ne sera pas obtenir ensemble. Est-ce que je manque quelque chose?
Mise à jour
Comment je suis (essayer) définir l'état sur la case à cocher:
- (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);
*/
}
}
}
La solution
Vos colonnes liées à un contrôleur ou utilisez-vous le protocole NSTableDataSource? Je soupçonne que ce dernier mais vous devez spécifier.
Voulez-vous profiter de mon hypothèse: un clic sur une case à cocher est traité de la même manière que toute autre chose dans la méthode -tableView:setObjectValue:forTableColumn:row:
. Votre objet sera l'état du bouton ...