以编程方式禁用列的“创建排序描述符”

时间:2013-03-02 12:41:45

标签: objective-c cocoa data-binding nstableview nssortdescriptor

我有一个使用可可绑定的NSTableview。我需要在表中禁用排序,为此我在stackoverflow上找到了以下文本:

  

如果使用Cocoa绑定来管理数据,则排序描述符由表列生成并设置为NSArrayController。要停止它,只需打开表列绑定的检查器,选择值,然后取消选中“创建排序描述符”。

这很好用,但是在运行时添加了一些列,我需要在运行时以编程方式执行相同的操作。有人可以指点我正确的方向吗?一个示例或教程或其他任何可以帮助我在运行时执行此操作。基本上我需要做的就是禁用在运行时创建的列的排序。

1 个答案:

答案 0 :(得分:1)

如果您是以编程方式在arraycontroller上设置绑定,那么您应该能够传递额外的绑定选项。

    NSMutableDictionary *bindingOptions = [NSMutableDictionary dictionary];
    [bindingOptions setObject:[NSNumber numberWithBool:NO]
                       forKey:NSCreatesSortDescriptorBindingOption];
        [column bind:@"value" toObject:self.arrayController withKeyPath:[NSString stringWithFormat:@"arrangedObjects.%@",c.key] options:bindingOptions];