如何更改NStableView點擊時的背景顏色

NSTableView 中每一行是用NSTableRowView表示的,因此可以繼承此類,重寫點擊時的drawSelection方法

示例更改了點擊時的行顏色,并且在最左邊畫了一條線:

class CSTableRowView: NSTableRowView {

    override func drawSelection(in dirtyRect: NSRect) {
        if self.selectionHighlightStyle != .none {
            // 填充背景顏色
            let fillColor = NSColor(red: 35.0/255, green: 63.0/255, blue: 95.0/255, alpha: 1)
            fillColor.set()
            dirtyRect.fill()
            // 繪制左側邊框
            let lineColor = NSColor(red: 0.20, green: 0.85, blue: 0.99, alpha: 1.00)
            lineColor.setFill()
            let lineRect = NSRect(x: 0, y: 0, width: 2, height: dirtyRect.height)
            lineRect.fill()
        }
    }
}

在代理方法中,使用自定義的 rowView
// 示例用的 outlineView

    func outlineView(_ outlineView: NSOutlineView, rowViewForItem item: Any) -> NSTableRowView? {
        var rowView = outlineView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "rowView"), owner: self) as? CSTableRowView
        if rowView == nil {
            rowView = CSTableRowView()
            rowView?.identifier = NSUserInterfaceItemIdentifier(rawValue: "rowView")
        }
        return rowView
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,335評論 0 17
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,335評論 0 10
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,663評論 1 32
  • 一杯敬自由,一杯敬朝陽。 久不見朝陽,自由成空談。 有些人沒有受傷,卻承了更為疼的痛。 紫木林,落月 “乖乖,乖乖...
    尛凩袹尛閱讀 302評論 0 0
  • 今晚的網(wǎng)絡卡的不行, 破壞了聽課學習的心情。 間斷的人聲是我有些迷糊, 一時間陷入半睡半醒的困窘。 不防寫點東西,...
    汀瀾_893c閱讀 158評論 0 0

友情鏈接更多精彩內容