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
Cocoa NSTableView列可以';无法分类_Cocoa_Nstableview_Cocoa Bindings_Nsarraycontroller - Fatal编程技术网

Cocoa NSTableView列可以';无法分类

Cocoa NSTableView列可以';无法分类,cocoa,nstableview,cocoa-bindings,nsarraycontroller,Cocoa,Nstableview,Cocoa Bindings,Nsarraycontroller,我正在将NSTableView绑定到NSArrayController。由于某种原因,我根本无法对列进行排序。有些列甚至不显示排序方向箭头。有些人确实会显示它,但单击它只是切换箭头方向,实际上根本不会对内容进行排序 这都在IB中,所以没有代码显示 在NSArrayController上检查自动重新排列内容 “表视图”“表内容”部分已绑定,可以正常工作。在表视图绑定下有一个排序描述符区域,但我不知道该设置什么。我尝试将它绑定到同一个数组控制器,并将控制器键设置为arrangedObjects,但这

我正在将NSTableView绑定到NSArrayController。由于某种原因,我根本无法对列进行排序。有些列甚至不显示排序方向箭头。有些人确实会显示它,但单击它只是切换箭头方向,实际上根本不会对内容进行排序

这都在IB中,所以没有代码显示

在NSArrayController上检查自动重新排列内容

“表视图”“表内容”部分已绑定,可以正常工作。在表视图绑定下有一个排序描述符区域,但我不知道该设置什么。我尝试将它绑定到同一个数组控制器,并将控制器键设置为arrangedObjects,但这会导致运行时崩溃。(显然,它正在尝试发送“键”选择器。)


编辑:下面是一个示例项目,说明了这个问题。表格标题显示排序方向箭头,但单击标题时表格数据不变

在属性检查器下,需要提供排序键和选择器(比较:)。 这将开始对表列进行排序,您需要为每个表列设置此选项

此外,您可以从以下网站获取我的示例代码,以供参考:

应用程序启动后,您可以单击加载抽屉和加载表,然后单击标题对列进行排序。在本例中,我将排序键设置为与值绑定键相同


我希望这能有所帮助。

您的示例应用程序不起作用。当您尝试对列进行排序时,它会抛出一个异常(水果模型比较:无法识别的选择器)。我希望您没有修改代码中的任何内容。它工作得很好,关于比较:,这是一种标准的排序方法。这对我有用!我不知道该告诉你什么。我没有修改它。OSX 10.9.2,Xcode 5.1。下面是单击表标题时的控制台输出:由于排序有问题,我建议创建一个简单的测试项目,集中于对表列进行排序。我看到了您的代码,并且能够通过删除一个绑定对列进行排序。在IB中,窗口->视图->带边框的滚动视图->剪辑视图->表格视图。在此tableView上存在表内容的绑定,请删除此绑定,因为它不是必需的,然后重试。它起作用了!