Macos NSProgressIndicator在开始设置动画时消失

Macos NSProgressIndicator在开始设置动画时消失,macos,cocoa,nsprogressindicator,Macos,Cocoa,Nsprogressindicator,我有一个NSProgressIndicator旋转,当它没有设置动画时显示良好,但一旦开始设置动画,它就会消失。但是,当我将样式切换到进度条时,它只显示精细、动画和所有内容。此外,它在停止设置动画时会重新出现,因此它只有在旋转时才不可见 我是Cocoa编程新手,我已经通过代码和在线搜索了几个小时,试图找出我的问题,但一直没有成功。什么会导致这个问题 我的代码在某种程度上是基于苹果公司的示例AVSimplePlayer的代码。我今天遇到了这个问题。事实证明,当使用spin时,在主线程中运行的其他东

我有一个NSProgressIndicator旋转,当它没有设置动画时显示良好,但一旦开始设置动画,它就会消失。但是,当我将样式切换到进度条时,它只显示精细、动画和所有内容。此外,它在停止设置动画时会重新出现,因此它只有在旋转时才不可见

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


我的代码在某种程度上是基于苹果公司的示例AVSimplePlayer的代码。我今天遇到了这个问题。事实证明,当使用spin时,在主线程中运行的其他东西首先运行。也就是说,如果你有

let progressIndicator // 
progressIndicator.startAnimation(self)
// do tasks
progressIndicator.stopAnimation(self)
现实中的秩序是

let progressIndicator // 
// do tasks
progressIndicator.startAnimation(self)
progressIndicator.stopAnimation(self)
所以你永远看不到动画。这是解决方法,在progressIndicator.startAnimationself之后,停止主运行循环一段时间


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

是否在线程上调用startAnimation?初始化视图时,我会调用[progressIndicator startAnimation:nil],这使它不会消失,但仍然不会动画化:
let progressIndicator // 
progressIndicator.startAnimation(self)
RunLoop.main.run(until: Date(timeIntervalSinceNow: 0.001))
// do tasks
progressIndicator.stopAnimation(self)