在NSTableVIew中作为复选框的NSButtonCell不会被选中

时间:2010-11-30 12:02:32

标签: objective-c cocoa nstableview nsbutton nsbuttoncell

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

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

问题是当我点击它们时复选框不会改变它的状态。我试图附加一个IBAction,但发送者去行动是TableView而不是复选框

有关如何实现此类功能的任何想法(或链接)?

1 个答案:

答案 0 :(得分:10)

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

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

最后一个方法告诉表格查看将有多少行。

有关详细信息,请参阅the table data source documentation,但我在此处对此进行了总结。