gpt4 book ai didi

swift - updateLayer() 上下文

转载 作者:行者123 更新时间:2023-11-28 11:43:38 24 4
gpt4 key购买 nike

在 NSView 中,我正在为 macOS 10.14 执行此操作:

override var wantsUpdateLayer: Bool {
return true
}

override func updateLayer() {
if let context = NSGraphicsContext.current?.cgContext {
// Never enters here
}
else {
// Gives run-time error, invalid context
let path = NSBezierPath()
path.move(to: NSPoint(x: 0, y: 0))
path.line(to: NSPoint(x: 10, y: 10))
path.stroke()
}
}

因此,没有像 override func draw(_ dirtyRect: NSRect) 中那样有效的图形上下文,而且我似乎无法获得一个。我应该如何获得用于在 updateLayer 中绘图的有效图形上下文?

最佳答案

您不应该在 updateLayer 中绘图,这就是为什么没有 cgContext 传递给您的原因。为此,实现 CALayerDelegatedrawLayer:inContext:updateLayer 是一种将位图直接分配给图层的替代方法,但仅限于此。

参见:https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CoreAnimation_guide/SettingUpLayerObjects/SettingUpLayerObjects.html

关于swift - updateLayer() 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52950418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com