I UISearchBar适配
1. 去掉UISearchBar搜索框的放大镜
- 去掉UISearchBar的放大镜
UITextField *searchTextField = [searchBar valueForKey:@"_searchField"];
searchTextField.leftView = nil;
- 隐藏取消按钮
[searchBar setShowsCancelButton:NO];
1.2IOS13控件私有属性适配
iOS13无法访问UISearchBar 的 _searchField的解决方案https://blog.csdn.net/z929118967/article/details/104277752
这次iOS 13系统升级,影响范围最广的应属KVC访问修改私有属性了,直接禁止开发者获取或直接设置私有属性。而KVC的初衷是允许开发者通过Key名直接访问修改对象的属性值,为其中最典型的
UITextField
的 _placeholderLabel、UISearchBa
r 的 _searchField。_placeholderLabel推荐采用NSMutableAttributedString适配
解决方案: 使用 NSMutableAttributedString 富文本attributedPlaceholder来替代KVC访问 UITextField 的 _placeholderLabel
textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"placeholder" attributes:@{NSForegroundColorAttributeName: [UIColor darkGrayColor], NSFontAttributeName: [UIFont systemFontOfSize:13]}];
see also
iOS12、13、14 系统适配汇总:https://kunnan.blog.csdn.net/article/details/113388980