【发布时间】:2020-07-05 19:19:29
【问题描述】:
我有一个在 macOS 上运行的 Catalyst 应用程序,我需要在其中选择 并 聚焦集合视图中的第一个项目。默认情况下,仅选择以编程方式选择的项目,而不是聚焦。为了说明我的意思,这里是正在发布的应用程序...
这是我使用鼠标或键盘手动选择第一项后的应用程序...
据我了解,Catalyst 使用 tvOS 的 Focus Engine 来管理焦点,因此在这里应用相同的概念应该会达到相同的结果。但是,我的运气为零。
我尝试过的事情......
- 覆盖视图控制器上的
preferredFocusEnvironments并返回集合视图,并在集合视图委托中实现indexPathForPreferredFocusedView(in:)。这在调用这两种方法时都有效,但对结果没有影响。 - 覆盖
preferredFocusEnvironments并从集合视图中返回当前选定的单元格。 - 根据this Big Nerd Ranch article,覆盖
preferredFocusEnvironments并以硬编码的IndexPath(item: 0, section: 0)返回单元格。
不幸的是,这些方法都没有实际关注所选项目的预期结果。谁能建议如何实现这一目标?
【问题讨论】:
标签: macos uikit tvos mac-catalyst