objective-c - iOS監聽isFirstResponder的變化
天蓬老师
天蓬老师 2017-04-28 09:05:33
0
2
724

我想監聽一個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也可以看到該監聽器確實是已經添加成功了,請問誰有沒有碰到過這種情況?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(2)
習慣沉默

並不存在「_isFirstResponder」這樣的key!可以透過valueForKey或是valueForKeyPath判斷!如果想監聽這個屬性可以自訂UISearchBar,重寫becomeFirstResponder和resignFirstResponder兩個方法,使用Notification或delegate或block傳遞訊息

PHPzhong

建議可以了解下RAC,這個用RAC可以輕鬆解決。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板