问题描述
我正在 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 (将#修改为@)