NSTableView和UITableView很相似,只是多了一个tableColumn(列的属性),但是缺少了分区section,大家可以看一下delegate和datesource的方法:
<pre>//返回行数
-(NSInteger) numberOfRowsInTableView:(NSTableView )tableView{
NSInteger rows;
//do something
return rows;
}
//每个单元内的view
-(NSView)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn )tableColumn row:(NSInteger)row{
yourCustomCellView cell = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
//do something
//cell.XX=XX;
return cell;
}
行高
-(CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row{ CGFloat height;
//do something
return height;
}
是否可以选中单元格
-(BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)row{ BOOL shouldSelectRow;
//do something
return shouldSelectRow;
}
选中的响应
-(void)tableViewSelectionDidChange:(nonnull NSNotification )notification{ NSTableView tableView = notification.object;
//do something
}</pre>
需要注意的是,iOS都是base cell的,而OS的tableView有两种选择,一种是base cell,一种是base view,以上提供的方法是base view的,base cell暂时没有研究。
网友评论