如何解决在 ScreenSaverView 的 draw() 函数中禁用黑色背景
我正在 Xcode 中制作屏幕保护程序。我在像这样的 draw() 函数中在屏幕上绘制(只是一些移动和改变颜色的点),
override func draw(_ rect: NSRect) {
for point in 1..<PointArray.count {
drawPoint(p: PointArray[point])
}
}
并且一切正常,按预期显示点,除了屏幕通过绘制黑色背景有效地刷新每一帧,我不希望发生这种情况,因为我希望我的粒子有轨迹。问题是
ScreenSaverView 实现了 draw(_:) 来绘制黑色背景。子类可以在此处或在 animateOneFrame() 中进行绘制。
来自此处的 Xcode 文档:https://developer.apple.com/documentation/screensaver/screensaverview/1512500-draw(我不知道为什么这是屏幕保护程序图形实现的默认设置,而不是任何其他 UI 或 NS 套件的默认设置)。有没有办法禁用它?如果没有,文档确实说我可以在 animateOneFrame()
函数中绘制,但我不知道如何绘制,以及指示是否更新屏幕的命令 - setNeedsDisplay()
- 有效地调用了 draw()
场景。因此,如果我必须放弃 draw()
,我该如何绘制 animateOneFrame()
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。