在 IB 中创建了一个 TableView,并且希望它只有一列带有复选框。创建复选框的一种方法是使用 IB 将 NSButtonCell 拖到列中,然后符合 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
因此,当一个类对象充当 TableView 中列的数据源,并且该列包含诸如每一行的复选框之类的对象时,该类是为复选框提供唯一的开/关状态数据,还是它还提供复选框对象?
相关问题是:
- TableView 是否创建并包含 NSButtonCells?
- 如果 1 的答案是肯定的,那么如何设置/更改 NSButtonCell 的属性,比如它的标题?
- 而不是 TableView 创建和维护 NSButtonCells,数据源类可以创建它们吗?也就是说,不是使用 IB 将 NSButtonCell 拖到列中,而是可以在 awakeFromNIB 之类的方法中添加 NSButtonCells 吗?
- 有没有办法在给定列中混合单元格对象的类型。例如,是否可以在 column1row1 中有一个文本标题,然后在 column1row2 中有一个复选框?
谢谢。