iOS 13 UISearchBar的 这句代码UITextFi
崩溃的原因就是因为这句代码
UITextField *searchField = [self.searchBar valueForKey:@"_searchField"];
因为iOS13禁止textfield通过KVC的方式获取或者设置textfield的私有属性,因此我们需要做下修改:
NSString *version = [UIDevice currentDevice].systemVersion;
if (version.doubleValue >= 13.0) {
// 这里是对 13.0 以上的iOS系统进行处理
UITextField *searchField;
NSUInteger Views = [self.searchBar.subviews count];
for(int i = 0; i < Views; i++) {
if([[self.searchBar.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) {
searchField = [self.searchBar.subviews objectAtIndex:i];
}
}
//这里设置相关属性
} else {
// 这里是对 13.0 以下的iOS系统进行处理
UITextField *searchField = [self.searchBar valueForKey:@"_searchField"];
//这里设置相关属性
}