2010-11-30 31 views
4

J'ai un NSTableVIew pour des fins de multi-sélection avec deux colonnes, la première avec une case à cocher NSButtonCell et l'autre comme titre.NSButtonCell comme case à cocher dans un NSTableVIew ne sont pas sélectionnés

L'idée est de vérifier les éléments à ajouter après un tableau.

Le problème est que les cases à cocher ne changent pas d'état quand je les clique. J'ai essayé d'attacher un IBAction mais l'expéditeur de l'action est le TableView mais pas la case à cocher

Des idées (ou un lien) sur comment réaliser ce genre de fonctionnalité?

+0

Il n'y a pas grand-chose à faire ici. Comment alimentez-vous les données NSTableView? – Rob

Répondre

9

Voulez-vous en supposant que vous utilisez un NSTableViewDataSource dont vous avez besoin pour mettre en œuvre trois méthodes:

- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex 
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex 
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView 

Lorsque la case à cocher est cliqué la première méthode est appelée. Si unTableColumn a vos cases à cocher, vous sauvegarderez le nouvel état, qui est [anObject boolValue]. Lorsque la table doit dessiner une ligne, elle appelle la deuxième méthode. Lorsque la colonne de la table est votre colonne de case à cocher, renvoyez l'état que vous avez enregistré dans la première méthode.

La dernière méthode indique à la vue de table combien de lignes il y aura.

Voir the table data source documentation pour plus de détails, mais je l'ai résumé à peu près ici.