我有一个NSCollectionView
,它需要加载大约 1000 个项目(项目只包含文本,没有图像或其他丰富的东西)。
我想NSProgressIndicator
在 UI 上旋转以让用户知道它正在工作,但发现指示器出现在 UI 上并且根本不旋转。事实上,整个 UI 在NSCollectionView
加载数据时被挂起,似乎NSCollectionView
任务占据了该绑定任务的 100% 的主线程。
绑定发生时我有可能NSProgressIndicator
旋转吗?
编辑:
我使用了一个 NSArrayController 作为数据源,并将 NSCollectionView 的内容绑定到 arrayController.arrangedObjects,当新的项目添加到 arrayController 时,collectionView 会自动更新。
如果我将绑定任务放到辅助线程中,我观察到每个项目一个接一个地出现在 UI 上,每个项目大约需要 0.5 秒,因为要绑定大约 1000 个项目,任务需要太长时间才能完成.
我正在寻找的是,当我想将新项目绑定到 collectionView 时,绑定在主线程中运行,progressIndicator 平稳旋转,当整个加载任务完成时,collectionView 更新,progressIndicator 消失了。