我的应用程序的主 GUI 有一个 NSTableView,由它自己的 Controller 类控制。此类通过启动和解析进程的输出将数据加载到表中一次。这是在
中完成的-(void)awakeFromNib
Controller 类的方法。该表在启动时立即显示,因此这意味着在显示 GUI 之前,应该完成进程输出的解析。
现在的问题是,当显示 GUI 时(我的应用程序启动很慢,这意味着进程已启动),表有时是空的,有时会加载数据。这是随机的。 那么如何让表在启动时始终加载数据?
reloadData
不起作用!我还使用 [NSTask waitUntilExit];
最佳答案
这就是我经常在窗口显示之前使应用程序“完全加载”的方式:
在 Interface Builder 中取消选中窗口的“启动时可见”。然后在 AppDelegate 中创建一个 IBOutlet NSWindow *window;
。最后,在您的 AppDelegate 中,实现 applicationDidFinishLaunching:
方法并将 [window makeKeyAndOrderFront:self];
添加到该方法中。
这应该可行,因为 applicationDidFinishLaunching:
将始终在 awakeFromNib
之后调用。
关于cocoa - NSTableView保证数据显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050153/