cocoa - NSTableView 列无法排序

标签 cocoa nstableview cocoa-bindings nsarraycontroller

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

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

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

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

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

最佳答案

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

另外,为了供您引用,您可以从以下位置获取我的示例代码:Project

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

我希望这会有所帮助。

关于cocoa - NSTableView 列无法排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22851272/

相关文章:

objective-c - 执行关闭 : on a borderless window?

objective-c - (25) 和@(25) 之间的区别

cocoa - 当 LSUIElement 设置为 YES 时,如何处理快捷方式?

objective-c - 如何将一个 NSImageView 置于另一个 NSImageView 的前面或后面?

cocoa - 自定义 NSTableViewCell

cocoa - 为什么我的内部成员变量的名称会破坏数据绑定(bind)?

objective-c - 在 NSTableView 运行时计算组行

objective-c - 基于 View 的 NSTableView,使行高依赖于内容

swift - 将 swift 3 项目转换为使用 CoreData

objective-c - NSManagedObjectContext 和 NSArrayController 重置/刷新问题