2011-08-13 24 views
0

我的应用程序的主要GUI有一个NSTableView,由它自己的控制器类控制。该类通过启动和分析进程的输出来将数据加载到表中。这是在NSTableView保证数据显示

-(void)awakeFromNib 

控制器类的方法。该表在启动时显示,因此这意味着在显示GUI之前,应该完成对过程输出的分析。

现在的问题是,当显示GUI(我的应用程序启动速度慢,这意味着进程已启动)时,表有时为空或有时加载数据。这是随机的。 那么如何让表始终加载数据?

reloadData不起作用!我也用[NSTask waitUntilExit];

+0

您能解释一下如何通过绑定或委派向您的表提供数据吗? –

+0

代表团 - 数据源 – yolo

回答

1

这是怎么了,我经常做一个应用程序“完全载入”之前的窗口显示:

取消选中您在Interface Builder窗口“启动时可见”。然后在AppDelegate中创建一个IBOutlet NSWindow *window;。最后,在您的AppDelegate中,实施applicationDidFinishLaunching:方法并将[window makeKeyAndOrderFront:self];添加到此方法中。

这应该有效,因为applicationDidFinishLaunching:将始终在awakeFromNib之后调用。

+0

不!!突然我重新测试我的应用程序,它不工作 - 仍然是一个空表随机(我正在显示窗口现在使用这种方法,确认) – yolo

+0

你确定makeKeyAndOrderFront是你在applicationDidFinishLaunching中做的最后一件事吗?另外,如果你现在摆脱了makeKeyAndOrderFront,窗口是否停止显示? (只是想确认一下,以防你在别的窗口显示出来) – Enchilada

+0

窗口不会出现'makeKeyAndOrderFront',这是applicationDidFinishLaunching中唯一的事情 – yolo