【发布时间】:2011-12-10 06:14:22
【问题描述】:
我正在尝试向对象添加观察者并通过更改它的布尔值来触发它。
代码: 添加观察者:
[unitsCellViewController.cell addObserver:self forKeyPath:@"unit" options:0 context:nil];
在对象中,当文本字段发生变化时,我会改变布尔值并尝试触发通知:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ([string length] != 0)
{
NSRange match = [@"0123456789" rangeOfString:string];
if (match.location == NSNotFound) {
return NO;
}
}
[self willChangeValueForKey:@"unit"];
self.on = !on;
[self didChangeValueForKey:@"unit"];
return YES;
}
但这不起作用,值确实发生了变化,但没有触发观察者。 我这样做正确吗?如果没有,如何在文本字段更改时触发事件?
【问题讨论】:
标签: iphone objective-c ios observer-pattern