Objective c NSArrayController在NSTableView中显示正确的行数,但不显示实际数据

Objective c NSArrayController在NSTableView中显示正确的行数,但不显示实际数据,objective-c,nstableview,nsarraycontroller,Objective C,Nstableview,Nsarraycontroller,我试图在NSTableView中显示的数据是特定本地目录中的文件列表 在代码中,我有一个方法a,它访问目录并循环遍历文件,通过addObject:将包含每个文件详细信息的NSMutableDictionary添加到NSMutableArray,然后返回该数组。这些细节不是模型的实例变量或属性,每个细节都只是一个NSString,其值在运行时确定 一个单独的方法B调用方法A,并在返回的数组中循环,通过addObject:将每个项添加到我的NSArrayController中 在.xib文件中,我有

我试图在NSTableView中显示的数据是特定本地目录中的文件列表

在代码中,我有一个方法
a
,它访问目录并循环遍历文件,通过
addObject:
将包含每个文件详细信息的NSMutableDictionary添加到NSMutableArray,然后返回该数组。这些细节不是模型的实例变量或属性,每个细节都只是一个NSString,其值在运行时确定

一个单独的方法
B
调用方法
A
,并在返回的数组中循环,通过
addObject:
将每个项添加到我的NSArrayController中

在.xib文件中,我有一个NSArrayController,它绑定到我代码中的NSMutableArray实例变量,其中存储了特定本地目录中文件的所有信息

我还将NSTableView中每个表列的值绑定到NSArrayController的相关模型键路径

正确运行应用程序将显示NSTableView中的行数(特定本地目录中的正确文件数)。但是,在每个表列(在所有表列中,在每个单独的表单元格中)中显示的文本只是“表视图单元格”

我已经使用NSLog确认向NSArrayController添加对象也会更新绑定到的NSMutableArray实例变量。我还可以随机查看实例变量中存储的对象,并通过每个表列的绑定中指定的相同模型键路径访问该文件的详细信息,但NSTableView不显示该信息

关于是什么导致了这个问题,有什么线索吗

编辑:我还尝试通过
reloadData
直接刷新NSTableView,但没有成功


如果相关,绑定到NSArrayController的NSMutableArray实例变量仅由NSArrayController填充。换句话说,我不会直接在代码中向该数组添加对象。

问题似乎是,您的表视图没有刷新。因此,请使用以下代码行:-

[self.arrController rearrangeObjects];

问题似乎是,您的表视图没有刷新。因此,请使用以下代码行:-

[self.arrController rearrangeObjects];

问题似乎是,您的表视图没有刷新。因此,请使用以下代码行:-

[self.arrController rearrangeObjects];

问题似乎是,您的表视图没有刷新。因此,请使用以下代码行:-

[self.arrController rearrangeObjects];

本例中的问题最终是NSTableView的“内容模式”设置,该设置在属性检查器中指定


默认设置显然是“基于视图”,但需要是“基于单元格”。在做了这些改变和重建之后,瞧!它成功了。

本例中的问题最终是NSTableView的“内容模式”设置,该设置在属性检查器中指定


默认设置显然是“基于视图”,但需要是“基于单元格”。在做了这些改变和重建之后,瞧!它成功了。

本例中的问题最终是NSTableView的“内容模式”设置,该设置在属性检查器中指定


默认设置显然是“基于视图”,但需要是“基于单元格”。在做了这些改变和重建之后,瞧!它成功了。

本例中的问题最终是NSTableView的“内容模式”设置,该设置在属性检查器中指定


默认设置显然是“基于视图”,但需要是“基于单元格”。在做了这些改变和重建之后,瞧!它成功了。

只是尝试一下,没有任何改变。将所有对象添加到NSArrayController后,将其放入方法
B
。还尝试将其放置到循环本身,以便在每次添加新对象时刷新它,但运气不佳。不过谢谢你的回答~只是尝试一下,没有任何变化。将所有对象添加到NSArrayController后,将其放入方法
B
。还尝试将其放置到循环本身,以便在每次添加新对象时刷新它,但运气不佳。不过谢谢你的回答~只是尝试一下,没有任何变化。将所有对象添加到NSArrayController后,将其放入方法
B
。还尝试将其放置到循环本身,以便在每次添加新对象时刷新它,但运气不佳。不过谢谢你的回答~只是尝试一下,没有任何变化。将所有对象添加到NSArrayController后,将其放入方法
B
。还尝试将其放置到循环本身,以便在每次添加新对象时刷新它,但运气不佳。谢谢你的回答~