过滤谓词未在 NSArrayController 上调用
Filter Predicate not called on NSArrayController
我有一个 NSArrayController,我以编程方式在其上应用过滤器谓词:
- (void)setFilters {
NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(LMRootItem *rootItem,
NSDictionary *bindings) {
...
return YES;
}];
[_controller setFilterPredicate:pred];
}
当使用 IB 设置 NSArrayController 的 content 绑定时,一切正常。
当我以编程方式设置 NSArrayController 的内容绑定时,我的过滤谓词函数永远不会被调用,内容也永远不会被过滤:
[_controller bind:@"arrangedObjects"
toObject:_otherController
withKeyPath:@"arrangedObjects.@unionOfArrays.rootItems"
options:nil];
绑定与我在 IB 中所做的相同。
有谁知道出了什么问题吗?
找到了。看来我应该这样做:
[_controller bind:@"contentArray"
toObject:_otherController
withKeyPath:@"arrangedObjects.@unionOfArrays.rootItems"
options:nil]
我有一个 NSArrayController,我以编程方式在其上应用过滤器谓词:
- (void)setFilters {
NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(LMRootItem *rootItem,
NSDictionary *bindings) {
...
return YES;
}];
[_controller setFilterPredicate:pred];
}
当使用 IB 设置 NSArrayController 的 content 绑定时,一切正常。
当我以编程方式设置 NSArrayController 的内容绑定时,我的过滤谓词函数永远不会被调用,内容也永远不会被过滤:
[_controller bind:@"arrangedObjects"
toObject:_otherController
withKeyPath:@"arrangedObjects.@unionOfArrays.rootItems"
options:nil];
绑定与我在 IB 中所做的相同。
有谁知道出了什么问题吗?
找到了。看来我应该这样做:
[_controller bind:@"contentArray"
toObject:_otherController
withKeyPath:@"arrangedObjects.@unionOfArrays.rootItems"
options:nil]