自定义UISearchBar的“取消按钮”

需求: UISearchBar的取消按钮,没有公共方法能够修改它的属性。但咱们仍能够经过遍历UISearchBar的子控件来设置该"取消按钮"。spa

效果: 将UISearchBar的取消按钮中的"取消"文字,更改成"搜索"。orm

代码以下:继承

- (void)setSearchBar:(UISearchBar *)searchBar{it

      UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 44)];io

     [searchBar setShowsCancelButton:YES];   //显示右侧取消按钮(必须)ast

  /*1. 遍历UISearchBar的子控件, 在"二级子控件"中找到UINavgationButton, 也就是咱们要更改的"取消按钮";class

   2. 获得UINagationBar(继承自UIButton), 并修改它的属性;搜索

  */遍历

     for (UIView *view in [[searchBar.subviews lastObject] subviews]) {方法

         if ([view isKindOfClass:[UIButton class]]) {

             UIButton *cancelBtn = (UIButton *)view;

             [cancelBtn setTitle:@"搜索" forState:UIControlStateNormal]; //关键步骤

        }

    }

    [self.view addSubview:searchBar];

}

效果: 

 

感谢 Stack Overflow的Jason的分享。

相关文章
相关标签/搜索