如何更改NSTableView中单元格的颜色?
发布于 2010-05-21 10:05:44
尝试使用自定义的NSView或NSTableView的-setBackgroundColor:方法。
发布于 2010-05-22 09:29:51
在NSTableView的NSTableViewDelegate中,实现此方法:
- (void)tableView:(NSTableView *)tableView
willDisplayCell:(id)cell
forTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)rowNSTableView在显示每个单元格之前对其代理调用此函数,以便您可以影响其外观。假设您正在使用NSTextFieldCells,对于您想要更改的单元格,调用:
[cell setBackgroundColor:...];或者,如果要更改文本颜色:
[cell setTextColor:...];如果您希望列具有不同的外观,或者如果所有列都不是NSTextFieldCells的,那么可以使用[tableColumn identifier]来标识该列。您可以在Interface Builder中通过选择表列来设置标识符。
发布于 2017-03-19 06:03:20
//已测试- Swift 3 solution...for更改单列中单元格文本的颜色。我的表视图中的所有列都有唯一的标识符
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
let myCell:NSTableCellView = tableView.make(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
if tableColumn?.identifier == "MyColumn" {
let results = arrayController.arrangedObjects as! [ProjectData]
let result = results[row]
if result.ebit < 0.0 {
myCell.textField?.textColor = NSColor.red
} else {
myCell.textField?.textColor = NSColor.black
}
}
return myCell
}https://stackoverflow.com/questions/2879154
复制相似问题