我有一个类data
的对象EquationData
。我还有一个自定义tableviewcell(balanceCell),它有一个自定义文本字段(balanceCell.leftView)作为子视图。 text字段具有NSMutableString equationOrder
类型的属性,该属性随用户在文本中键入而更改。我希望data
在equationOrder
添加更多对象时收到通知。
我在视图控制器中拥有的内容
- (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
收到通知? (我确保对象实际上已添加到equationOrder中)