问题标签 [focus-engine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
231 浏览

swift - TvOS 焦点引擎跳过单元

我有 UITableView,其中 1 个单元格userInteractionEnabled = false因此无法聚焦。当用户尝试关注此单元格时,我想关注表格下方的按钮。如何实现呢?我尝试了didUpdateFocus其他方法,但没有调用它们。

0 投票
1 回答
858 浏览

objective-c - 从 tvOS 中的 UIButton 移除焦点

所以我正在编写我的第一个 tvOS 应用程序(目标 C),并在“Focus Engine”中获得了一些乐趣。我的应用程序是一个带有标签栏控制器的 2 页应用程序,在主页上我有几个 UIButtons。在应用程序启动时,如果我隐藏选项卡栏,按钮看起来就像我希望它们全部取消选择,当我向下滑动其中一个 UIButtons 显然获得焦点,并且我可以在我的各个按钮之间滑动,并且在指定数量之后不活动时间我希望它回到他们都没有专注。

当每个 UIButton 获得焦点时,我启动(并重置)一个 NSTimer,我的意图是在 10 秒后移除 UIButton 焦点(这是有充分理由的,这在我的应用程序 / ui 中是有意义的)。

我尝试过发出“UIButton resignFirstResponder”我还尝试将焦点移回隐藏的 TabBar,我什至尝试过“preferredFocusEnvironments”,但我无法让按钮突出显示消失。我也试过循环,虽然按钮将它们全部设置为“userInteractionEnabled = NO”,然后再返回,但按钮保持焦点。我有日志行显示计时器开始并在它到期时触发我的取消焦点方法,但无论我在那里放什么,我似乎都无法让焦点消失。

关于如何从 UIButton 中删除焦点的任何想法,我认为部分问题是我不想将其移动到其他地方。我想删除所有按钮焦点,我认为这是一件不寻常的事情。

提前致谢。

等离子体

0 投票
3 回答
767 浏览

ios - tvOS 如何检查 UITabBar 是否聚焦

我正在寻找一种在将焦点从 UITabBar 更改为 UITabBar 时进行自定义转换的方法。

我目前正在通过覆盖该didUpdateFocus方法来尝试此操作,但我似乎无法检查 tabBar 是否已聚焦。

tabBar 本身似乎永远不会处于“集中”状态:

当检查UIFocusUpdateContext当前聚焦的元素是一个UITabBarButton.

但我无法检查上下文是否是一个实例,UITabBarButton因为该类型不可用:

我真的被困在这里,并且希望有任何关于如何解决这个问题的建议。

谢谢。

0 投票
1 回答
1483 浏览

swiftui - 如何在 SwiftUI 中使用 tvOS 的焦点引擎?

我对 tvOS 和 SwiftUI 有一些焦点引擎问题。

当我在 SwiftUI 中使用按钮时,焦点引擎可以完美地处理它(按钮会自动获得焦点,并在获得焦点时弹出有趣的动画)。当我使用 VStacks 和 HStacks 创建带有图像的网格时,.focusable()确实处理了焦点部分,但在屏幕上视觉上除了网格是可滚动的之外没有什么可看的。

我真的希望我在网格中的图像能够突出显示并弹出到前面,就像我可以在 TVML/TVJS 中轻松做到的那样(但谁不想成为原生的)。我想看看我是否可以全部原生化,但 Apple 在其演示和文档的 tvOS 部分上做的很少。

我曾尝试寻找可以解决此问题的示例项目,但我找不到任何东西。也许这里有人知道。提前谢谢了!

0 投票
0 回答
291 浏览

ios - tvOS SwiftUI 焦点引擎

我正面临在我们的新 tvOS 应用程序中使用 SwiftUI 的决定,但我发现 foucs 有问题。我知道存在类似的东西:

但我看不到像UIFocusGuide. 你们中有人遇到过类似的问题吗?也许您有任何解决方案/示例如何在 SwiftUI 中处理复杂的焦点行为?也许现在还不是使用它的时候,我们需要等待新的更新。

干杯。

0 投票
1 回答
294 浏览

ios - SWIFT:在 TVOS 中退出收集时强制焦点引擎转到按钮

我已经以编程方式实现了这个:

  1. tableView 单元格列表。
  2. 每个 tableViewCell 都包含一个 collectionView 和一个 Button。

在此处输入图像描述

现在发生了什么事:

  1. 焦点引擎在集合视图上
  2. 用户向下滚动
  3. 除非我在焦点集合视图的最后一项上,否则焦点引擎会转到下一个集合视图,然后它会转到 VoirTout 按钮。

我想要的是:

  1. 焦点引擎在集合视图上
  2. 用户向下滚动
  3. 焦点引擎转到 Voir Tout 按钮

我已经看到了几个使用preferredFocusEnvironments这样的答案:

然后在 viewDidLoad 中调用这些:

但是,就我而言,这没有效果。

0 投票
0 回答
24 浏览

swift - 迅速。您如何计算从 tvOS 遥控器滑动的速度?

tvOS 中的滚动视图不提供滑动速度。您将如何访问 tvOS 遥控器上将焦点从一个单元移动到另一个单元的滑动速度?

0 投票
0 回答
244 浏览

foreach - 如何在 SwiftUI 列表中使用 .focusedValue

我改编了博客文章中的一个示例,它允许我与屏幕上的另一个视图共享与 ForEach 中选定元素关联的数据。它设置了FocusedValueKey一致性:

然后它有一个带有按钮的 ForEach 视图,其中焦点按钮使用.focusedValue修饰符设置 NotePreview 的值:

这适用于 ForEach,但在将 ForEach 替换为 List 时无法正常工作。我怎样才能让它与 List 一起使用,为什么它不能开箱即用?

0 投票
1 回答
731 浏览

swiftui - 在 SwiftUI (tvOS) 中获取按钮的 onFocusChange 回调

修饰符中的onFocusChange闭包focusable(_:onFocusChange:)允许我在子视图集中时为父视图设置属性,如下所示:

但是在focusable介绍的 2020 WWDC 视频中,明确指出此包装器不打算与按钮和列表等本质上可聚焦的视图一起使用。如果我在这里使用 Button 代替 Text ,则 onFocusChange 可以工作,但是 Buttons 的正常焦点行为会中断:

有什么通用方法可以让 onFocusChange 闭包与不破坏其正常可聚焦行为的按钮一起使用?还是有其他方法可以做到这一点?

0 投票
0 回答
52 浏览

ios - UITableView 上的 tvOS 焦点引擎,将 UICollectionViews 作为单元格

我正在尝试实现用于在 tvOS 上观看视频的目录视图。它应该有一个 UITableView,每个部分(或行)都是一个水平滚动的 UICollectionView。此类设置可以在 Youtube、Spotify、Podcast、Apple Music tvOS 应用程序中找到。

在没有任何调整的情况下首次启动时,焦点引擎只关注整个父 UITableViewCells。

然后我做这里所说的:How to focus a UICollectionViewCell in UITableViewCell in tvOS? . 我在 UITableViewDelegate canFocusRowAt 方法中禁用了焦点,现在焦点指南专注于 UICollectionViewCells,但仅针对第一个 UITableViewCell 中的那些。基本上我只能在第一行内水平聚焦。(我注意到,如果我移动得很快,在我从屏幕上的最后一个聚焦到侧面并尝试向下聚焦之后,它确实聚焦在下一行,但事实并非如此。)

您可以使用此处的代码测试行为: https ://github.com/dev-labs-bg/samples/tree/master/tvOS-catalogue-samples/catalogue-no-details

我也尝试了这里的建议:https ://developer.apple.com/forums/thread/70790 ,但没有运气。

谢谢!