찾다

 >  Q&A  >  본문

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也可以看到该监听器确实是已经添加成功了,请问谁有没有碰到过这种情况?

天蓬老师天蓬老师2756일 전707

모든 응답(2)나는 대답할 것이다

  • 習慣沉默

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

    "_isFirstResponder" 같은 키는 없습니다! valueForKey 또는 valueForKeyPath로 판단할 수 있습니다! 이 속성을 모니터링하려면 UISearchBar를 사용자 정의하고, makeFirstResponder 및 ResignFirstResponder 메서드를 재정의하고, 알림을 사용하거나 위임 또는 차단하여 메시지를 전달할 수 있습니다.

    회신하다
    0
  • PHPz

    PHPz2017-04-28 09:07:33

    RAC에 대해 알아두는 것이 좋습니다. RAC를 이용하면 쉽게 해결할 수 있습니다.

    회신하다
    0
  • 취소회신하다