我有一个表视图,我动态添加列。它必须以这种方式完成,因为我无法预测我需要多少列或哪些列。
有些列是checkboxes但我在运行应用程序时无法点击它们。列和复选框设置为可编辑,但如果单击复选框,则不会设置检查。我错过了什么吗?
更新
我是如何(尝试)在复选框上设置状态:
- (void)tableView:(NSTableView *)theTableView
setObjectValue:(id)theObject
forTableColumn:(NSTableColumn *)theColumn
row:(int)rowIndex
{
if (theTableView == resultsTableView) {
if ([[theColumn identifier] isEqualToString:CHCheckBoxColumnIdentifier]) {
NSInteger state = [[theColumn dataCell] state];
if (state == NSOnState) {
[[theColumn dataCell] setState:NSOffState];
} else {
[[theColumn dataCell] setState:NSOnState];
}
/*
NSLog(@"%@", theObject);
NSLog(@"%@", theColumn);
NSLog(@"%i", rowIndex);
*/
}
}
}
答案 0 :(得分:2)
您的列是绑定到控制器还是使用NSTableDataSource协议?我怀疑后者,但你需要指定。
继续我的假设:单击复选框的方式与-tableView:setObjectValue:forTableColumn:row:
方法中的其他任何方式相同。你的对象将是按钮的状态......