NSProgressIndicator在开始制作动画时会消失

时间:2013-11-13 23:28:38

标签: macos cocoa nsprogressindicator

我有一个NSProgressIndicator(旋转),当它没有动画时显示正常,但一旦它开始动画就会消失。但是,当我将样式切换到进度条时,它会显示正常,动画和所有内容。此外,它在停止动画时会再次出现,因此只有在旋转时它才会被隐藏。

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

我的代码有点基于Apple的示例AVSimplePlayer的代码,找到here

1 个答案:

答案 0 :(得分:0)

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

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

现实中的顺序是

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

所以你永远不会看到动画。这是解决方法,在progressIndicator.startAnimation(self)之后停止主要的runloop。

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

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