【发布时间】:2020-05-27 09:40:27
【问题描述】:
我有一个标准的NSOutlineView。我希望它有一个背景图像,它垂直平铺,并与大纲视图单元格一起滚动。
我在 ViewController 中使用以下内容在某种程度上实现了这一点:
class ViewController: NSViewController {
@IBOutlet weak var outlineView: NSOutlineView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
if let image = NSImage(named: "tile") {
let color = NSColor.init(patternImage: image)
outlineView.backgroundColor = color
}
}
}
这有效,除非您滚动超过视图的顶部或底部(使用包含滚动视图提供的拉伸)。
我尝试将背景图像放在滚动视图上,但它是静态的,不会随着大纲视图的内容滚动。
我还尝试在视图层次结构中对各种对象进行子类化并覆盖它们的 draw(_ dirtyRect: NSRect) 方法并执行以下操作:
self.wantsLayer = true
self.layer?.backgroundColor = ...etc
但也没有成功。
谁能给点建议?
【问题讨论】:
-
你在
draw(...方法中直接将NSImage绘制到视图上吗? -
我不记得尝试过,不。它可能奏效了?无论如何,我确实找到了另一种解决方案,如下所示。
标签: swift cocoa nsoutlineview