2014-01-16 28 views
2

我試圖在我的應用程序中更新NSTableView,但沒有發現任何工作。 我已經在我的項目兩大類:重新加載NSTableView數據不起作用

  • AppDelegate
  • TableViewController這是NSTableViewDelegateNSTableViewDataSource

當我嘗試添加新行,我可以看到ArrayController(它提供的數據表),包含了新的元素,但NSTableView沒有。 我的桌子也作爲屬性連接到TableViewController,但它不與AppDelegate連接。 我試着打電話給

[self.table performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

dispatch_async(dispatch_get_main_queue(), ^{ 
    [self.table reloadData]; 
}); 

table是NSTableView的連接性能。

是否有任何其他方法刷新表視圖?

編輯

問題解決了。

+0

你是如何解決它的?自從切換到OSX 10.9以來一樣。 – Tobias

+0

在'AppDelegate'中,我創建了'NSObject'出口,並在''.xib'文件中將'TableViewController'連接到它,然後從'AppDelegate'中調用它的方法,它對我很有用。 – Filip

+0

嗯,不太明白你的意思是「...然後從AppDelegate我可以調用它的方法...」。在我的控制器中,我調用** [[self tableView] reloadData]; **獲取新數據時。在OSX 10.8中,我的表視圖已自動更新,現在在10.9下,只有在調整窗口大小時才更新。 – Tobias

回答

0

是在TableViewController中將數據添加到數組的地方嗎?如果是這樣,你是否在你將數據添加到數組之後嘗試自己添加[self.table reloadData]?這應該會獲得更新的數據,而不包含您已包裝的方法。performSelector和dispatch_async方法看起來沒有必要,但由於我看不到所有的代碼,因此可能會出現一些不明顯的原因。

+0

是的,我已經添加了'NSArrayController',它爲列提供數據作爲IBOutlet',我試圖調用'[selt.table reloadData]'但它沒有幫助。當我下班回來時,我可以在幾個小時內發佈我的整個代碼。 – Filip