Обновить предикат для контроллера массива

У меня есть контроллер массива, и я привязал к нему объект, дескриптор сортировки и предикат. Если я изменяю формат предиката при запуске приложения, оно работает, поэтому привязка работает.

Моя проблема в том, что я хочу изменить предикат, например. с условием поиска или какой-либо строкой, которую вводит пользователь, ничего не происходит, но когда я добавляю запись в основную базу данных данных, табличное представление обновляется.

Итак, мой вопрос: как мне сообщить контроллеру массива, что предикат изменился, и он должен обновить себя. Вот код, который запускается, когда я ввожу поисковый запрос, он также работает, и я правильно получаю все выходные данные 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 день может).


person Trausti Thor    schedule 18.05.2012    source источник
comment
Итак, привязан ли предикат к привязке предиката фильтра контроллера массива в IB?   -  person rdelmar    schedule 19.05.2012


Ответы (1)


Вы должны использовать self.predicate = ..... Это обеспечит отправку правильных уведомлений KVO, которые немедленно обновят ваше табличное представление (это предполагает, что «предикат» является свойством и привязан к предикату фильтра вашего контроллера массива привязка).

person rdelmar    schedule 19.05.2012
comment
Спасибо. Это сработало как шарм. Конечно, это должно было быть так просто :) - person Trausti Thor; 19.05.2012