使用新的iOS 13系统时,我试图使用valueForKey:@"_searchField"
更改UISearchBar
的textField
属性时出现了崩溃。
现在似乎苹果公司已经改变了一些东西。
我创建了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编写相同的代码,可以将其添加到答案中。
愉快的编码!