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暫時沒有研究。