NSTableview刷新异步加载数据

时间:2015-05-14 11:09:26

标签: objective-c cocoa nstableview cocoa-bindings

我在XIB中连接了一个NSTableView和一个NSArrayController。在我的应用中,我异步加载数据并不断调用[_arrayController addObject:someNewObject]。我原本以为要更新NSTableView,而不得不在前台/后台之间切换应用程序以查看更新。

所以我尝试通过添加以下语句之一让NSTableView在每个addObject上刷新自己

  • [_tableView reloadData]
  • [_tableView setNeedsDisplay:YES]
  • [_tableView display]

但是,当NSTableView在前台运行时,它不会自行刷新。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在AC上尝试rearrangeObjects,但请注意it's not synchronous

因此,addObject然后rearrangeObjects然后dispatch_async执行任何依赖于显示新对象的tableView的代码。链接问题/答案中的示例。

答案 1 :(得分:-1)

您应该使用Flux架构并做出反应。

您创建数据存储,在那里存储数据,然后您创建对存储中的更改做出反应的订阅者。

这里很棒的教程:http://www.raywenderlich.com/74106/mvvm-tutorial-with-reactivecocoa-part-1