NSProgressIndicator 在应用程序启动期间未显示

NSProgressIndicator not showing during app start up

这一定超级简单,但是我找不到。

我想向我的 NSViewController 显示 NSProgressIndicator 不确定的微调器样式,以便在应用程序启动时显示在视图中间(类似于 Xcode)。加载所有数据后(在后台线程上),我 return 到主线程并隐藏微调器并显示内容。

一切都按预期工作,除了我没有看到微调器。

在情节提要中,我添加了微调器作为主视图的子视图,并添加了 centerX 和 centerY 约束,也在情节提要中。

然后在viewDidLoad:

override func viewDidLoad() {
    super.viewDidLoad()

    progressSpinner.isHidden = false
    progressSpinner.startAnimation(self) // <-- do I use self here?
}

加载数据后:

func didFinishLoading() {
    progressSpinner.stopAnimation(self) // <-- do I use self here?
    progressSpinner.isHidden = true

    showData()
}

我在这里错过了什么?

好的,我找到问题了。故事板中的 "Hidden" 复选框已选中。

即使 progressSpinner.isHidden = falseviewDidLoad 中,旋转器仍然不可见。取消选中该框即可解决问题。

编辑

我认为现在的根本问题是微调器在同一 window 中被 scrollView 遮挡了。更改情节提要中的顺序没有帮助,所以我最终删除并重新添加了微调器,如下所示。现在它独立于隐藏复选框设置工作。

override func viewDidLoad() {
    super.viewDidLoad()

    progressSpinner.removeFromSuperview()
    view.addSubview(progressSpinner, positioned: .above, relativeTo: nil)

    progressSpinner.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
    progressSpinner.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true

    progressSpinner.isHidden = false
    progressSpinner.isDisplayedWhenStopped = false

    progressSpinner.startAnimation(self)
}