UISearchBar的使用二: UISearchBar失去焦点,取消按钮无法响应

如图,当UISearchBar失去焦点的时候,取消按钮无法响应点击。只需要在失去焦点后,将取消按钮的enabled设置为YES即可。一般写在代理的searchBarSearchButtonClicked方法里。


UISearchBar的使用二: UISearchBar失去焦点,取消按钮无法响应_第1张图片
截图1.png
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    [searchBar resignFirstResponder];
    UIButton *cancelBtn = [searchBar valueForKey:@"cancelButton"]; 
    cancelBtn.enabled = YES; 
}

显然,有个问题,如何知道私有属性名的呢?这里请参考《利用runtime获取私有属性名及类型》。
除了使用kvc,还可以遍历UISearchBar子控件,但是这里需要使用递归的方法遍历子控件,才能找到cancelBtn。

你可能感兴趣的:(UISearchBar的使用二: UISearchBar失去焦点,取消按钮无法响应)