У меня есть простое представление, которое имеет два текстовых представления, а также кнопку. Все органы управления расположены вертикально. Я могу переходить от одного элемента управления к другому с помощью пульта дистанционного управления. Тем не менее, я пытаюсь заставить работать следующий сценарий:
- Пользователь запускает приложение (фокус находится на первом текстовом поле)
- Пользователь вводит текстовое поле и использует полноэкранную клавиатуру, затем нажимает кнопку «Далее».
- Приложение показывает второе текстовое поле (полноэкранная клавиатура), вводит текст и нажимает кнопку «Готово».
- Приложение покидает полноэкранную клавиатуру и фокусируется на кнопке
В то время как шаг 1-3 работает из коробки, изменение фокуса программно (4) не работает. Вот код:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if(textField == self.textfieldB) {
self.activeView = self.textfieldB;
[self setNeedsFocusUpdate];
[self updateFocusIfNeeded];
return YES;
}
return NO;
}
и в - (UIView *)preferredFocusedView
я возвращаю все, что хранится в self.activeView (да, он вернет экземпляр кнопки). Все методы вызываются, как и ожидалось, однако фокус не меняется. Что я здесь делаю неправильно?
Заранее спасибо!