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 に答える