我有一个NSProgressIndicator(旋转),当它没有动画时显示正常,但一旦它开始动画就会消失。但是,当我将样式切换到进度条时,它会显示正常,动画和所有内容。此外,它在停止动画时会再次出现,因此只有在旋转时它才会被隐藏。
我是Cocoa编程的新手,我一直在寻找几个小时通过我的代码和在线试图找出我的问题,但我没有成功。什么会导致这个问题?
我的代码有点基于Apple的示例AVSimplePlayer的代码,找到here。
答案 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。您也可以尝试其他答案。