gpt4 book ai didi

cocoa - 更新数组 Controller 上的谓词

转载 作者:行者123 更新时间:2023-12-03 17:41:56 25 4
gpt4 key购买 nike

我有一个数组 Controller ,并且已将一个实体绑定(bind)到它、排序描述符和谓词。如果我在应用程序运行时更改谓词格式,它就会起作用,因此绑定(bind)起作用。

我的问题是当我想更改谓词时,f.ex。使用搜索词或用户输入的某些字符串,不会发生任何事情,但是当我向核心数据数据库添加记录时, TableView 会更新。

所以我的问题是,如何告诉数组 Controller 谓词已更改并且它应该自行更新。这是当我输入搜索词时运行的代码,它也有效,并且我正确地获得了所有 NSLogs 输出。只是我的表格 View 没有自行更新。

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

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

最佳答案

您应该使用 self.predicate = ..... 这将确保发送正确的 KVO 通知,这将使您的 tableview 立即更新(这假设“predicate”是一个属性并且绑定(bind)到您的数组 Controller 的过滤谓词绑定(bind))。

关于cocoa - 更新数组 Controller 上的谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com