在 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...