首页 > 解决方案 > 如何在 swift 中为 macos 选择 NSOutlineView 行时设置背景颜色

问题描述

我是 swift 的 macOS 开发新手。如何快速在 NSOutlineView 的选定单元格上添加背景颜色?

标签: swiftmacos

解决方案


方法一

您可以符合NSOutlineView Delegate并且可以实现调用行选择的outlineViewSelectionDidChange方法。

extension ViewController: NSOutlineViewDelegate {
    
    func outlineViewSelectionDidChange(_ notification: Notification) {
        // Get selected row
        if let row = yourOutlineView.rowView(atRow: yourOutlineView.selectedRow, makeIfNecessary: false) {
            // Change background Color
            row.wantsLayer = true
            row.layer?.backgroundColor = .black
        }
    }
}

方法二

您还可以从 Storyboard 控制选择突出显示:如果将 Highlight 设置为Regular,它将自动显示选择颜色。

在此处输入图像描述


推荐阅读