更新阵列控制器上的谓词



我有一个数组控制器,我已经将一个实体绑定到它,对描述符和谓词进行排序。如果我在应用程序运行时更改谓词格式,它可以工作,因此绑定正常工作。

我的问题是,当我想用用户输入的搜索词或某个字符串更改谓词时,没有任何反应,但是当我将记录添加到核心数据数据库时,表视图确实会更新。

所以我的问题是,我如何告诉数组控制器谓词已更改并且它应该自行更新。这是我输入搜索词时运行的代码,它也可以工作,并且我正确获得了所有 NSLogs 输出。只是我的表视图没有自行更新。

- (IBAction)didChangeSearch:(id)sender {
    if (sender == searchField) {
        NSString *searchterm = [sender stringValue];
        if (searchterm.length > 1) {
            predicate = [NSPredicate predicateWithFormat:@"name contains [c]%@", @"m"];
            NSLog(@"Putting predicate to the job : %@", searchterm);
        } else {
            predicate = nil;
            NSLog(@"There is nolonger any predicate");
        }
    }
    NSLog(@"I just got %@", [sender stringValue]);
}

我想在一开始就说,我对绑定很陌生,直到今晚才使用过它们,对它们有很好的感觉,并且喜欢它,为我节省了这么多代码,我终于理解了它(最多 1 天可以(。

你应该使用 self.predicate = .....这将确保发送正确的 KVO 通知,这将使您的表视图立即更新(这假设"谓词"是一个属性,并绑定到数组控制器的筛选器谓词绑定(。

相关内容

  • 没有找到相关文章

最新更新