我有一个用于多选目的的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,但是我在这里已经对其进行了总结。

09-04 05:08
查看更多