无法修改表视图的标题单元格

时间:2016-08-29 05:29:19

标签: macos cocoa nstableview nstableviewheader

我的Cocoa应用程序有一个基于视图的表格视图。

该表显示日历的一周,其中每列是从(比如)周日到周六的一天。

我想以某种方式突出显示与“今天”相对应的专栏; 理想,为文本字段添加彩色背景,圆角;像这样的东西:

enter image description here

(这在iOS中实现是微不足道的。在macOS上,使用单元格等而不是视图和图层,一切看起来都那么复杂......)

但是,我甚至无法更改标题单元格的文本或背景颜色。下面的代码(Swift 3),但所有列标题都显示为默认颜色:

let columns = tableView.tableColumns

// (currentWeek is an array of NSDate)
for (index, day) in currentWeek.enumerated() {        

    let column = columns[sundayIndex + index]

    if Shared.calendar.isDateInToday(day) {
        // THESE TWO LINES ARE EXECUTED, BUT...

        column.headerCell.textColor = NSColor.red 
        // ...NO EFFECT

        column.headerCell.backgroundColor = NSColor.black 
        // ...NO EFFECT
    }

    // THIS WORKS FOR EVERY ROW:
    column.headerCell.stringValue = formatter.string(from: day)  
}

0 个答案:

没有答案