iOS 13 UISearchBar的 这句代码UITextFi

2019-09-25  本文已影响0人  iOS门三闫

崩溃的原因就是因为这句代码

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"];

           //这里设置相关属性

      }

上一篇下一篇

猜你喜欢

热点阅读