场景: 点击searchBar跳转到另一个界面搜索, 当前searchBar只负责显示
那这种情况下, [searchBar setText:@"test"]之后, 右边的clearButton就会默认出现. 我想让它消失, 不然后续交互就达不到目的.
百度, google, 都没拿到结果. 灵机一动, UITextField不是可以设置clearMode吗?! 那我只要拿到searchBar下的textField, 设置相应的clearMode.
经过测试, 果然可以.
代码如下:
for (UIView *view in customSearchBar.subviews) {
if ([view isKindOfClass:NSClassFromString(@"UIView")] && view.subviews.count > 1) {
if ( [[view.subviews objectAtIndex:1] isKindOfClass:[UITextField class]]) {
UITextField *textField = (UITextField *)[view.subviews objectAtIndex:1];
[textField setClearButtonMode:UITextFieldViewModeNever]; // 不需要出现clearButton
}
break;
}
}
OK, DONE!