我的 textFields 上有一个观察者,可以查看“enabled@ 属性是否已更改。
(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *) context;
{
UITextField *txtField = (UITextField *)object;
BOOL new = [[change objectForKey:NSKeyValueChangeNewKey] boolValue];
BOOL old = [[change objectForKey:NSKeyValueChangeOldKey] boolValue];
if ((new != old) && (new = YES))
{
[self fadeDisable:txtField];
}
else if ((new != old) && (new = NO))
{
[self fadeEnable:txtField];
}
我想如果我使用 int new 和 int old,定义属性是否启用的 1 或 0 将被返回,但是当我使用 NSLog 来查看你带回的内容时,它是一长串数字。
我查看了文档,似乎 objectForKey 实际上返回了一个 id 而不是整数,但我不确定该怎么做。
编辑:我已经为我的比较添加了代码,它试图确定它是否从禁用变为启用(反之亦然)。还按照建议添加了 boolValue 校正。
它没有给出预期的结果,也没有调用正确的方法。这是对的吗?谢谢