首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改NSTableViewCell的颜色

更改NSTableViewCell的颜色
EN

Stack Overflow用户
提问于 2010-05-21 10:02:35
回答 4查看 9.6K关注 0票数 11

如何更改NSTableView中单元格的颜色?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-21 10:05:44

尝试使用自定义的NSViewNSTableView-setBackgroundColor:方法。

票数 0
EN

Stack Overflow用户

发布于 2010-05-22 09:29:51

NSTableViewNSTableViewDelegate中,实现此方法:

代码语言:javascript
复制
- (void)tableView:(NSTableView *)tableView 
  willDisplayCell:(id)cell 
   forTableColumn:(NSTableColumn *)tableColumn 
              row:(NSInteger)row

NSTableView在显示每个单元格之前对其代理调用此函数,以便您可以影响其外观。假设您正在使用NSTextFieldCells,对于您想要更改的单元格,调用:

代码语言:javascript
复制
[cell setBackgroundColor:...];

或者,如果要更改文本颜色:

代码语言:javascript
复制
[cell setTextColor:...];

如果您希望列具有不同的外观,或者如果所有列都不是NSTextFieldCells的,那么可以使用[tableColumn identifier]来标识该列。您可以在Interface Builder中通过选择表列来设置标识符。

票数 14
EN

Stack Overflow用户

发布于 2017-03-19 06:03:20

//已测试- Swift 3 solution...for更改单列中单元格文本的颜色。我的表视图中的所有列都有唯一的标识符

代码语言:javascript
复制
    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
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2879154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档