【问题标题】:NSTableView columns can't be sortedNSTableView 列无法排序
【发布时间】:2014-05-16 02:04:55
【问题描述】:

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

这一切都在 IB 中,所以没有代码可以显示。

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

表格视图的表格内容部分已绑定,并且有效。表格视图绑定下有一个排序描述符区域,但我不知道将其设置为什么。我尝试将它绑定到同一个数组控制器并将控制器键设置为排列对象,但这会导致运行时崩溃。 (它显然是在尝试发送“key”选择器。)

编辑:这是一个说明问题的示例项目。表格标题显示排序方向箭头,但单击标题时表格数据不会更改。 https://www.dropbox.com/s/yhvpxo9b73vj9it/bindingtest.zip

【问题讨论】:

    标签: cocoa nstableview cocoa-bindings nsarraycontroller


    【解决方案1】:

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

    另外,您可以从以下地址获取我的示例代码供您参考:Project

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

    我希望这会有所帮助。

    【讨论】:

    • 您的示例应用无法运行。当您尝试对列进行排序时,它会引发异常(FruitModel 比较:无法识别的选择器)。
    • 我希望您没有修改代码中的任何内容。它工作正常并且关于比较:它是一种标准的排序方法。它对我有用!
    • 我不知道该告诉你什么。我没有修改它。 OSX 10.9.2,Xcode 5.1。这是单击表头时的控制台输出:pastebin.com/Mmfm38wL
    • 由于排序有问题,我建议创建一个简单的测试项目,专注于对表格列进行排序
    • 我看到了您的代码,并且能够通过删除一个绑定来对列进行排序。在 IB 中,Window->View->Bordered Scroll View->Clip View->Table View。在这个 tableView 上有一个 Table Content 的绑定,删除这个绑定,因为它不是必需的,然后尝试。它有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多