【发布时间】:2020-04-09 19:59:36
【问题描述】:
我制作了一个简单的 headerView,它在主 NSView 上方绘制了一条灰色底线,就像 Xcode 中的标题一样。代码如下:
import Cocoa
class HeaderView: NSView {
var border = CALayer()
required init?(coder decoder: NSCoder) {
super.init(coder: decoder)
self.wantsLayer = true
self.layer?.backgroundColor = NSColor.white.cgColor
border.backgroundColor = NSColor.quaternaryLabelColor.cgColor
layer?.addSublayer(border)
}
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
border.frame = CGRect(x: 0.0, y: 0.0, width: frame.width, height: CGFloat(1.0))
}
}
线条绘制,但是当我调整窗口大小时,重新绘制线条时会有一点延迟。因此,如果我将窗口的右侧拉到右侧,您可以在右侧的线条中短暂看到一个间隙。
我也尝试添加:
self.layerContentsRedrawPolicy = .duringViewResize
但这并没有什么不同。
如何确保在调整窗口大小期间该行不断更新?
【问题讨论】: