Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 重新加载NSTableView数据无效_Objective C_Cocoa_Nstableview - Fatal编程技术网

Objective c 重新加载NSTableView数据无效

Objective c 重新加载NSTableView数据无效,objective-c,cocoa,nstableview,Objective C,Cocoa,Nstableview,我试图在我的应用程序中更新NSTableView,但我发现没有任何效果。 我的项目中有两个类: AppDelegate TableViewController是NSTableViewDelegate和 NSTableViewDataSource 当我尝试添加新行时,我可以看到ArrayController(向表提供数据)包含新元素,但NSTableView不包含新元素。 我的表格也作为属性连接到TableViewController,但它没有连接到AppDelegate。 我试着打过电话 [

我试图在我的应用程序中更新
NSTableView
,但我发现没有任何效果。 我的项目中有两个类:

  • AppDelegate
  • TableViewController
    NSTableViewDelegate
    NSTableViewDataSource
当我尝试添加新行时,我可以看到
ArrayController
(向表提供数据)包含新元素,但
NSTableView
不包含新元素。 我的表格也作为属性连接到
TableViewController
,但它没有连接到
AppDelegate
。 我试着打过电话

[self.table performselectornmainthread:@selector(reloadData)with object:nil waitUntilDone:NO]

其中,
是NSTableView连接的属性

是否有其他方法刷新表视图

编辑


问题已解决。

是否将数据添加到TableViewController中的阵列中?如果是这样,您是否在将数据添加到数组后立即尝试自行添加[self.table reloadData]?这样就可以获得更新的数据,而不必使用您包装它的方法。performSelector和dispatch_异步方法似乎没有必要,但由于我看不到所有代码,您可能会因为一个不明显的原因而将它们放在那里。

是的,我添加了
NSArrayController
,它以
IBOutlet
的形式为类提供列数据,我尝试调用
[selt.table reloadData]
但这没用。我可以在下班后的几个小时内发布我的全部代码。你是如何解决的?自从切换到OSX 10.9.In
AppDelegate
后,我就创建了
NSObject
插座,并将
TableViewController
连接到我的
.xib
文件中,然后从
AppDelegate
调用它的方法,它对我有效。Hhmmm,我不太明白你的意思"... 然后从AppDelegate我可以调用它的方法…”。在我的控制器中,我调用[[self tableView]reloadData];当我在中获取新数据时。在OSX 10.8中,我的表视图会自动更新,现在在10.9下,它只会在我调整窗口大小时更新。我在控制器中编写了额外的
iAction
,其中我有
[myTable reloadData]
和从
AppDelegate
我称之为
iAction
方法我正在使用10.9,在我的例子中,
AppDelegate
以一定的时间间隔执行它
dispatch_async(dispatch_get_main_queue(), ^{
    [self.table reloadData];
});