NSProgressIndicator在开始动画时消失



我有一个NSProgressIndicator(旋转),当它不动画时显示正常,但是一旦它开始动画,它就会消失。但是,当我将样式切换到进度条时,它显示得很好,动画和所有内容。此外,当它停止动画时,它会重新出现,因此它仅在旋转时不可见。

我是Cocoa编程的新手,我一直在通过我的代码和在线搜索几个小时,试图找出我的问题,但我没有成功。什么会导致此问题?

我的代码在某种程度上是基于Apple的示例AVSimplePlayer的代码,在这里找到。

我今天遇到了这个问题。事实证明,当使用spin时,在主线程中运行的其他东西首先运行。这意味着,如果您有

let progressIndicator // 
progressIndicator.startAnimation(self)
// do tasks
progressIndicator.stopAnimation(self)

现实中的顺序是

let progressIndicator // 
// do tasks
progressIndicator.startAnimation(self)
progressIndicator.stopAnimation(self)

所以你永远不会看到动画。这是解决方法,在progressIndicator.startAnimation(self)后停止主运行循环一会儿。

let progressIndicator // 
progressIndicator.startAnimation(self)
RunLoop.main.run(until: Date(timeIntervalSinceNow: 0.001))
// do tasks
progressIndicator.stopAnimation(self)

然后一切都会好起来的。我在这里找到了这个答案。您也可以在那里尝试其他答案。

相关内容

  • 没有找到相关文章

最新更新