У меня есть UIView с двумя кнопками на нем. В MyView
классе у меня есть этот код:tvOS: фокус не двигается правильно
-(BOOL) canBecomeFocused {
return YES;
}
-(NSArray<id<UIFocusEnvironment>> *)preferredFocusEnvironments {
return @[_editButton, _addButton];
}
-(IBAction) editTapped:(id) sender {
BOOL editing = !tableViewController.editing;
[_editButton setTitle:editing ? @"Done" : @"Edit" forState:UIControlStateNormal];
_addButton.hidden = !editing;
[tableViewController setEditing:editing animated:YES];
}
Основная идея заключается в том, что пользователь может переместить фокус на кнопку редактирования, которая может затем сделать кнопку Add появится.
Проблема возникла из-за того, что каждый раз, когда я нажимал кнопку редактирования, фокус переключился на представление таблицы. Мне бы очень хотелось, чтобы он переместился к кнопке «Добавить». Я также хочу, чтобы при редактировании его деактивировали, кнопка редактирования сохраняет фокус. но опять же он переходит к представлению таблицы.
Итак, я попробовал вышеуказанный код. Это работает в том, что фокус может перейти к представлению и к кнопке. Но как только он там, я не могу заставить его двигаться куда угодно.
Все, что я прочитал, говорит только о переопределении preferredFocusEnvironments
, но до сих пор мне не удалось заставить это работать. Фокус продолжает двигаться к кнопке, а затем отказывается двигаться куда угодно.
Любые идеи?
Это действительно сложно. Я пытаюсь теперь использовать 'UIFocusGuide', но похоже, что смещение фокуса с кнопок вниз на представление таблицы - это сгенерированное системой движение и игнорирует мое руководство по фокусировке. Хотя я и сижу между ними. Хмм. ! – drekka