将焦点移动到其他 UIButton

Move focus to other UIButton

我正在为 Apple TV 开发一款小游戏,但我无法开始工作的一件事是将焦点从一个按钮移动到另一个按钮(以编程方式),或者暂时从任何对象(按钮)上移除焦点因为游戏正在做事情。

我看过关于对象和焦点的指南,但是真的没有办法以编程方式将焦点移动到屏幕的其他部分,因为那里需要输入(而不是让用户一路移动横跨屏幕)?

总会有一个有焦点的视图。没有重点的观点是不可能的。

您可以临时更改项目的焦点外观,使其看起来没有焦点,但这可能会让用户感到困惑,或者与人机界面指南冲突。

根据 App Programming Guide for tvOS:

,没有明确的方法可以通过编程将焦点从一个控件移动到另一个控件

The Focus Engine Controls Focus

Only the focus engine can explicitly update focus, meaning there is no API for directly setting the focused view or moving focus in a certain direction. ...

The focus engine controls focus to make sure that it does not move around the screen unexpectedly, and that it behaves similarly across different applications.

其他问题的答案表明您可以通过覆盖 preferredFocusedView 来“游戏”系统,有条件地将其设置为要移动到的所需控件,然后请求焦点更新。这种方法可能很脆弱。