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 = false
在 viewDidLoad
中,旋转器仍然不可见。取消选中该框即可解决问题。
编辑
我认为现在的根本问题是微调器在同一 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)
}
这一定超级简单,但是我找不到。
我想向我的 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 = false
在 viewDidLoad
中,旋转器仍然不可见。取消选中该框即可解决问题。
编辑
我认为现在的根本问题是微调器在同一 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)
}