我有一个用于多选目的的NSTableVIew,其中有两列,第一列带有NSButtonCell作为复选框,另一列带有标题。
想法是检查要添加到数组中的后置后缀的项目。
问题是,当我单击复选框时,这些复选框不会更改其状态。我尝试附加IBAction,但是要执行操作的发件人是TableView,而不是复选框
关于如何实现这种功能的任何想法(或链接)?
最佳答案
继续假设您使用的是NSTableViewDataSource
,则需要实现以下三种方法:
- (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
单击复选框后,将调用第一个方法。如果aTableColumn有您的复选框,则将保存新状态,即
[anObject boolValue]
。当表需要绘制一行时,它将调用第二种方法。当表格列为复选框列时,返回您在第一种方法中保存的状态。
最后一个方法告诉表 View 将有多少行。
有关更多详细信息,请参见the table data source documentation,但是我在这里已经对其进行了总结。