我想监听一个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也可以看到该监听器确实是已经添加成功了,请问谁有没有碰到过这种情况?
Il n'existe pas de clé telle que "_isFirstResponder" ! Vous pouvez le juger par valueForKey ou valueForKeyPath ! Si vous souhaitez surveiller cette propriété, vous pouvez personnaliser UISearchBar, remplacer les méthodes comeFirstResponder et resignFirstResponder et utiliser Notification ou déléguer ou bloquer pour transmettre le message
Il est recommandé de vous renseigner sur RAC. Cela peut être facilement résolu avec RAC.