検索

ホームページ  >  に質問  >  本文

objective-c - iOS监听isFirstResponder的变化

我想监听一个UISearchBar的isFirstResponder的值的变化,采用了如下代码:


[_searchBar addObserver:self forKeyPath:@"_isFirstResponder" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    NSLog(@"test");
    return ;
}

在UISearchBar的delegate方法中可以看到isFirstResponder确定已经改变了,但是却没有输出"test",用searchBar.observationInfo也可以看到该监听器确实是已经添加成功了,请问谁有没有碰到过这种情况?

天蓬老师天蓬老师2836日前743

全員に返信(2)返信します

  • 習慣沉默

    習慣沉默2017-04-28 09:07:33

    「_isFirstResponder」のようなキーはありません。 valueForKeyかvalueForKeyPathで判断できます!このプロパティを監視したい場合は、UISearchBar をカスタマイズし、becomeFirstResponder メソッドと ResignFirstResponder メソッドをオーバーライドして、Notification、デリゲート、またはブロックを使用してメッセージを渡すことができます

    返事
    0
  • PHPz

    PHPz2017-04-28 09:07:33

    RAC について学ぶことをお勧めします。これは RAC を使用すると簡単に解決できます。

    返事
    0
  • キャンセル返事