с новой iOS 13 я получил сбой при попытке изменить свойства textField UISearchBar с помощью valueForKey:@"_searchField"
Теперь кажется, что Apple что-то изменила.
Я создал подкласс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];
Очевидно, что это цель-c фрагмент и, если кто-нибудь знает, как написать тот же код в swift, может добавить его к ответам.
Удачного кодирования!