gpt4 book ai didi

objective-c - 使用 NSArrayController 对 NSTableColumn 进行排序

转载 作者:行者123 更新时间:2023-12-03 16:17:21 25 4
gpt4 key购买 nike

我有一个绑定(bind)到 NSTableView 的 NSArrayController,因此表列如下所示:

NSTableView bindings:
Content -> ArrayController.arrangedObjects
SelectionIndexs -> ArrayController.arrangedObjects
SortDescriptors -> ArrayController.sortDescriptors

NSTableColumn bindings:
Value -> ArrayController.arrangedObjects.description

当我尝试使用列标题对其进行排序时,它只会因类似的内容而崩溃

error setting value for key path sortDescriptors of object NSArrayController

有什么想法吗?

最佳答案

我今天遇到了完全相同的问题。

似乎将 tableView 的内容和选择索引绑定(bind)到数组 Controller IB > 检查器窗口 > 选择你的 tableView > 绑定(bind)选项卡,通过单击表头禁用排序。这是有道理的,因为表格 View 现在显示了数组 Controller 的确切内容(和顺序)。

我在 IB 中取消选中这些绑定(bind),还从表列中删除了所有排序键 IB > 检查器窗口 > 选择 NSTableColumn > 属性 Pane 。在表列的绑定(bind)选项卡中选中创建排序描述符复选框。表上不需要 sortDescriptor,尽管我认为将表的 sortDescriptor 绑定(bind)到共享用户默认 Controller 可以在退出应用程序时保存排序。

如果您需要对表进行排序,请将 sortDescriptor 放在数组 Controller 上,也许在 awakeFromNib 中。

- (void)awakeFromNib {
[super awakeFromNib];
[self setSortDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"propertyOfYourObject" ascending:YES selector:@selector(compare:)]]];
}

这不会干扰单击表格列标题。

我无法在数组 Controller 上获取 sortDescriptor 来使用绑定(bind)。

关于objective-c - 使用 NSArrayController 对 NSTableColumn 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7878048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com