Case à cocher dans tableview
Je suis confronté à la difficulté de mettre des cases à cocher dans un UITableView. Je vous poste une partie de mon code ici.
- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSButtonCell *cell=[[NSButtonCell alloc] init];
NSString *strDisplayPlaylistName;
strDisplayPlaylistName=[playListNameArray objectAtIndex:row];
[cell setTitle:strDisplayPlaylistName];
[cell setAllowsMixedState:YES];
[cell setButtonType:NSSwitchButton];
return cell;
}
- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
NSCell *aCell = [aTableColumn dataCellForRow:rowIndex];
[aCell setNextState];
//NSCell *aCell=[aAddedCells objectAtIndex:rowIndex];
//[aCell setNextState];
}
J'ai eu les cases à l'intérieur de la UITableView. Mais le problème est que je ne peux pas décocher les boutons. Est-il rien de plus à faire. Je suis nouveau sur le cacao de programmation.
OriginalL'auteur Sreelal | 2009-06-20
Vous devez vous connecter pour publier un commentaire.
Il vous manque quelques pièces. Vous devez mettre à jour votre modèle (données stcuture) en réponse à la tableValue:setObjectValue:forTableColumn:ligne: message, de sorte que vous pouvez renvoyer correctement la nouvelle valeur de tableView:objectValueForTableColumn:ligne: de la méthode.
Voici quelques données de la table source des méthodes en supposant que vous avez un "myRows le tableau rempli avec des objets, avec un" booleanAttribute la propriété.
Vous devez également le programme d'installation de votre cellule de tableau dans interface builder. Vous pouvez faire glisser un bouton de cellules configuré comme une norme case à cocher directement sur l'une de vos colonnes de la table.
OriginalL'auteur Jon Hess
Je ne suis pas sûr de savoir pourquoi vous êtes la création de la cellule dans le code. Vous pouvez simplement faire glisser la cellule sur la colonne de table dans Interface Builder.
Aussi, setObjectValue: est lorsque vous répondez à des changements dans la cellule de l'état. L'utilisateur a déjà changé la cellule de l'état à off, puis vous envoyer
setNextState
et le changer en arrière. C'est pourquoi la cellule n'apparaît pas de décocher: vous conservez le contrôle.Ce que vous devez faire est de ne pas toucher à la cellule, mais de définir la valeur de l'objet (qui, pour cette colonne, sera probablement une valeur de type Boolean NSNumber contenant soit
YES
ouNO
) comme nouvelle valeur de la propriété appropriée dans votre modèle.Aussi, bien sûr, assurez-vous que la colonne est définie comme modifiable.
OriginalL'auteur Peter Hosey
Si vous avez votre NSTableView de contenu en mode "Cellule de Base", il sera "Vue" lorsque vous déplacez la case à cocher.
OriginalL'auteur Daniel Saban