Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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_Macos_Cocoa_Xcode5 - Fatal编程技术网

Objective c 升级项目后:删除现有行后,NSTableVIew无法正确更新

Objective c 升级项目后:删除现有行后,NSTableVIew无法正确更新,objective-c,macos,cocoa,xcode5,Objective C,Macos,Cocoa,Xcode5,自从我将我的项目从xCode3升级到xCode5以来,我一直对NSTableView有一个奇怪的问题 如果添加新行,视图将正确更新,并显示新行。但是,如果删除现有行,则tableview不会更新,需要关闭并重新打开窗口以查看更新的项目列表 用作数据源的NSTableView和NSArrayController都包含在xib文件中。要添加和删除行,我通过添加和删除对象对数组控制器进行操作。这是删除项目的代码: [[[self creatorsArrayController] selectedObj

自从我将我的项目从xCode3升级到xCode5以来,我一直对NSTableView有一个奇怪的问题

如果添加新行,视图将正确更新,并显示新行。但是,如果删除现有行,则tableview不会更新,需要关闭并重新打开窗口以查看更新的项目列表

用作数据源的NSTableView和NSArrayController都包含在xib文件中。要添加和删除行,我通过添加和删除对象对数组控制器进行操作。这是删除项目的代码:

[[[self creatorsArrayController] selectedObjects] makeObjectsPerformSelector:@selector(remove)];
[[self creatorsArrayController] remove:sender];
显然,老程序员出于某种原因使用了这两种方法。我也尝试删除这两行中的一行,但没有任何变化

这段代码在以前版本的xCode中运行得非常好,我怀疑在升级之后,xib文件中可能发生了一些变化,但我不知道它是什么


谢谢

要更新tableView,请使用

[yourTableViewOutletName重新加载数据]


删除一行后。

您使用的两行中的第一行对我来说没有多大意义,但我真的不知道,因为在这一行中,删除消息被发送到要删除的对象,这在您的应用程序中可能很重要,无论如何,它似乎与从数组中删除对象无关

您提供的信息很少,因此很难确定,但以下是一些需要检查的想法:

第二行应仅适用于选定对象。如果要以编程方式删除未选中的对象,则此方法无效,应使用removeObject或removeObjectAtArrangedObjectIndex:例如。 如果你正在使用核心数据,你可以考虑查看一些可能相关的注释。 检查“删除”按钮是否已正确绑定到NSArrayController,除非手动删除
是的,我已经试过了,但没用。我感到奇怪的是,对于任何其他操作,表都会正确更新,但对于删除行,表不会正确更新。是的,我在删除之前选择了该项,并且我正在手动删除,正如您从上面的代码中看到的那样。我想强调的是,在升级到xCode5之前,一切都正常,问题在于刷新表时,对象已从arrayController中正确删除。