У меня есть объект data
класса EquationData
. У меня также есть пользовательский tableviewcell (balanceCell), который имеет в качестве подчиненного поля пользовательское текстовое поле (balanceCell.leftView). Текстовое поле имеет свойство типа NSMutableString equationOrder
, которое изменяется, когда пользователь вводит текст. Я хочу, чтобы data
получал уведомления, поскольку к equationOrder
добавлено больше объектов.observer не принимает сообщения для keyPath в KVO
Что я имею в контроллере представления
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
equationCell = (EquationCell *) [tableView dequeueReusableCellWithIdentifier:@"equationCell"];
if (equationCell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"EquationCell" owner:self options:nil];
equationCell = (EquationCell*) [nib objectAtIndex:0];
[equationCell.leftView addObserver:data forKeyPath:@"equationOrder" options:NSKeyValueObservingOptionNew context:nil];
}
return equationCell;
}
Что я имею в реализации Дейты
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"equationOrder"])
NSLog(@"called");
}
Однако «под названием» не отображается на экране. Я попытался использовать другие переменные для data
, чтобы наблюдать, и я попытался изменить equationOrder
от свойства до переменной.
Как получить data
для получения уведомлений как equationOrder
? (Я убедился, что объекты фактически добавлены в уравнениеOrder)