过滤谓词未在NSArrayController上调用

时间:2015-02-18 22:48:37

标签: cocoa nsarraycontroller

我有一个NSArrayController,我在其上以编程方式应用过滤谓词:

- (void)setFilters {

    NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(LMRootItem *rootItem, 
                    NSDictionary *bindings) {

        ...
        return YES;

    }];

    [_controller setFilterPredicate:pred];
}

使用IB设置NSArrayController的内容绑定时,一切正常。

当我以编程方式设置NSArrayController的内容绑定时,我的过滤谓词函数永远不会被调用,内容永远不会被过滤:

[_controller bind:@"arrangedObjects" 
         toObject:_otherController    
      withKeyPath:@"arrangedObjects.@unionOfArrays.rootItems" 
          options:nil];

绑定与我在IB中的绑定相同。

有没有人知道出了什么问题?

1 个答案:

答案 0 :(得分:0)

找到它。我似乎应该这样做:

[_controller bind:@"contentArray" 
         toObject:_otherController      
      withKeyPath:@"arrangedObjects.@unionOfArrays.rootItems" 
         options:nil]