2015-05-14 33 views
0

我有一個NSTableView與XIB中的NSArrayController連接起來。在我的應用程序中,我正在異步加載數據,並不斷撥打[_arrayController addObject:someNewObject]。我曾預計這將更新NSTableView,而不得不在前景/背景之間切換應用程序才能看到更新。NSTableview刷新異步加載數據

所以,我試圖通過添加以下語句

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

然而一個讓NSTableView的刷新自己在每次ADDOBJECT中,NSTableView的不當它在前臺運行時刷新自己。

任何想法?

+0

您是否嘗試過'insertObject:atArrangedObjectIndex:'NSArrayController方法? – Astoria

+0

是的,沒有成功。 – Rabiees

+0

addObject應該工作,我剛剛嘗試過一個沙箱項目,區別在於我在NSString上運行,而不是任意的應用程序域對象。所以不確定是否有關於綁定的事情要做。 – Rabiees

回答

2

嘗試rearrangeObjects的交流,但要知道,無論是it's not synchronous

因此,addObject然後rearrangeObjects然後dispatch_async執行任何代碼,依賴於顯示新對象的tableView。鏈接的問題/答案中的示例。

+0

我做了以下事情:在主隊列上調度異步addObject。不確定atm是否會導致連接速度慢。但這將是未來的問題。我會在dispatch_async提示的基礎上接受你的答案:)。 – Rabiees

+0

是的,我認爲addObject已經在主線程中。 dispatch_async對於獲取它確實很有用。 – stevesliva