4

我有一个名为 subview1 的 uiview。根据某些情况,我将其作为子视图添加到其他几个视图中。现在我有以下代码

[subView1 addObserver:self forKeyPath:@"superview" options:NSKeyValueObservingOptionNew context:nil];

我的问题是 obserValueForKeypath 函数永远不会被调用

    -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if (self.subView1 == (UIView*)object) {
        if ([keyPath isEqualToString:@"superview"]) {
            NSLog(@"superview changed %@",change);

        }
    }
}

我在这里做错什么了吗。

4

1 回答 1

-1

只需检查它是否首先进入 if block ,问题可能就在那里。此外,如果它在不同的类中,请检查您是否为要设置观察者的变量声明了属性。

于 2012-05-28T09:09:06.760 回答