1

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

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

我的代码在某种程度上基于 Apple 的示例 AVSimplePlayer 中的代码,可在此处找到。

4

1 回答 1

1

我今天遇到了这个问题。事实证明,在使用时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)

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

于 2016-10-23T07:53:39.450 回答