如何立即使用tableview显示我的窗口?

时间:2014-01-24 06:17:43

标签: cocoa loading nstableview

如何让我的窗口显示tableview,而不是让用户等待?

tableview是需要一段时间才能计算的相关数据,因此我希望立即显示带有进度指示器的窗口。我在“属性”检查器中选择了“在启动时可见”,但在计算数据完成之前窗口不会加载 - 大约20秒。

2 个答案:

答案 0 :(得分:0)

不要在启动时立即加载tableView - 只需让tableView显示为空窗口。

稍后,在您的应用程序委托中:

- (void)applicationDidFinishLaunching:(NSNotification *)notification;

方法(或文档didLoad方法)触发加载数据。

答案 1 :(得分:0)

解决方案是使用以下命令在单独的线程上运行我的慢速计算方法:

[self performSelectorInBackground:@selector(analysizeAndSetDataForErrorWordList:) withObject:completeErrorWordList];

然而,在这个方法中,我需要在主线程上调用方法。我能够做到这一点:

[self performSelectorOnMainThread:@selector(addToErrorFoundArrayController:) withObject:thisData waitUntilDone:NO];

现在,带有数组控制器绑定tableView的窗口不再阻塞,而是在加载处理数据时显示。现在我的用户眼花缭乱而不是困惑。