Вы можете привести текущий UIView к текстовому представлению или текстовому полю.
Разделите чек на две части, чтобы вы знали, к какому типу его привести.Другой способ сделать это - посмотреть, отвечает ли объект на селектор setDelegate и, если да, отправить ему сообщение setDelegate.
Так что-то вроде этого:
for(UIView *subview in self.view.subviews)
{
if([subview isKindOfClass: [UITextView class]])
{
((UITextView*)subview).delegate = (id) self;
}
if([subview isKindOfClass: [UITextField class]])
{
((UITextField*)subview).delegate = (id) self;
}
}
Или...
if ([subview respondsToSelector:@selector(setDelegate)])
{
[subview performSelector:@selector(setDelegate:) withObject:self];
}
Для последнего кода меньше кода, но вам нужно убедиться, что вы реализовали все обратные вызовы делегатов для всех объектов UIView, которые вы помещаете в ваше представление.