5

我有一个用于多选目的的 NSTableVIew,它有两列,第一列以 NSButtonCell 作为复选框,另一列作为标题。

这个想法是检查要添加到数组后面的项目。

问题是当我单击它们时复选框不会改变其状态。我试图附加一个 IBAction,但发送者是表视图而不是复选框

关于如何实现这种功能的任何想法(或链接)?

4

1 回答 1

11

假设您正在使用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].

当表格需要绘制一行时,它会调用第二种方法。当表格列是您的复选框列时,返回您在第一种方法中保存的状态。

最后一个方法告诉表格视图会有多少行。

有关更多详细信息,请参阅表数据源文档,但我已经在这里做了很多总结。

于 2011-02-11T22:54:01.147 回答