ios - iOS 13 自定义 UISearchBar _searchField 崩溃
问题描述
使用新的 iOS 13,我尝试使用更改 UISearchBar textField 属性时崩溃了valueForKey:@"_searchField"
现在看来,苹果改变了一些东西。
我已经使用以下自定义方法创建了 UIView 的子类,现在它似乎可以工作了!
- (UIView *)findSubview:(NSString *)name resursion:(BOOL)resursion
{
Class class = NSClassFromString(name);
for (UIView *subview in self.subviews) {
if ([subview isKindOfClass:class]) {
return subview;
}
}
if (resursion) {
for (UIView *subview in self.subviews) {
UIView *tempView = [subview findSubview:name resursion:resursion];
if (tempView) {
return tempView;
}
}
}
return nil;
}
您可以通过这种方式简单地调用此方法来更改 UITextField 属性:
UITextField *textField = (UITextField*)[self findSubview:@"UITextField" resursion:YES];
显然这是一个 Objective-c 片段,如果有人知道如何在 swift 中编写相同的代码,可以将其添加到答案中。
快乐编码!
解决方案
我不确定它是否会有所帮助,但 UISearchBar 有一个新searchTextField
属性允许您访问它的 UISearchTextField,进而访问它的 UITextField:
let searchBar = UISearchBar()
var searchField : UITextField
if #available(iOS 13.0, *) {
searchField = searchBar.searchTextField
} else {
searchField = //Your original method
}
推荐阅读
- ios - Linting errors with KingFisher 5.12.0 - Swift 5.1.2
- java - 在不使用任何第三方的情况下,将地图数据映射到同一卡片视图中的 Recyclerview Adapter
- node.js - 为什么 res.render() 不能与 req.params.id 一起使用?
- meteor - FlowRouter not redirecting calling its action in onLogout
- c - Lego Mindstorms NXT, NXC: Error in replacing elements in an array (no matter the dimension)
- websocket - fastest way to stream image over web-socket
- python - scipy installed, but import scipy fails, import numpy Ok
- c# - 如何将位图二维码传递给ole对象(图片)水晶报表c#
- python - Comprehensive list of anonymous functions
- python-3.x - 发布请求 500 错误 Python 请求 Web Scraping