Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 在arraycontroller上更新谓词_Cocoa_Cocoa Bindings_Nssearchfield - Fatal编程技术网

Cocoa 在arraycontroller上更新谓词

Cocoa 在arraycontroller上更新谓词,cocoa,cocoa-bindings,nssearchfield,Cocoa,Cocoa Bindings,Nssearchfield,我有一个数组控制器,并将一个实体绑定到它,排序描述符和谓词。 如果我在应用程序运行时更改谓词格式,它就会工作,因此绑定工作正常 我的问题是当我想改变谓词f.ex时。对于用户输入的搜索词或字符串,什么都不会发生,但当我向核心数据数据库添加记录时,tableview会更新 所以我的问题是,我如何告诉数组控制器谓词已经改变,它应该自我更新。这是一个在我输入搜索词时运行的代码,它也起作用,并且我正确地获得了所有nslog输出。只是我的tableview没有自我更新 - (IBAction)didChan

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

我的问题是当我想改变谓词f.ex时。对于用户输入的搜索词或字符串,什么都不会发生,但当我向核心数据数据库添加记录时,tableview会更新

所以我的问题是,我如何告诉数组控制器谓词已经改变,它应该自我更新。这是一个在我输入搜索词时运行的代码,它也起作用,并且我正确地获得了所有nslog输出。只是我的tableview没有自我更新

- (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]);
}

我想在开始时说,我对绑定非常陌生,直到今晚才使用过它们,对它们有一种良好的感觉,并且喜欢它,为我节省了很多代码,我最终理解了它(尽可能多的用了一天)。

你应该使用self.predicate=。。。。。这将确保发送正确的KVO通知,这将使您的tableview立即更新(假设“谓词”是一个属性,并绑定到您的阵列控制器的筛选器谓词绑定)。

那么,谓词是否绑定到IB中的阵列控制器的筛选器谓词绑定?谢谢。这很有魅力。当然,事情必须这么简单:)