gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:29:26 25 4
gpt4 key购买 nike

我正在寻找一种方法来在将焦点从 UITabBar 移出或移到 UITabBar 时进行自定义转换。

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

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

override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinatora)
{
super.didUpdateFocus(in: context, with: coordinator)

print(self.tabBar.isFocused) // always false
}

检查 UIFocusUpdateContext 时,当前获得焦点的元素是 UITabBarButton

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

context.nextFocusedItem is UITabBarButton // can't compile

我真的被困在这里,很想得到任何关于如何解决这个问题的建议。

谢谢。

最佳答案

这个答案可能对 OP 没有帮助(一年多前有人问过),但由于我正在努力解决同样的问题,来自 WWDC17 的演示文稿帮我弄明白了:

UIViewUIViewControllerUIWindow等都符合UIFocusEnvironment协议(protocol)。 tabBar 本身从未真正获得直接焦点,因此检查其按钮之一是否具有焦点的正确方法是检查其环境是否包含 UIFocusItem:

override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
if let nextFocusedItem = context.nextFocusedItem,
self.tabBar.contains(nextFocusedItem) {
//Do some stuff
}
}

我敢肯定提问者很久以前就想出了这个问题,但我想我会把这个答案抛给以后碰巧有同样问题的其他人。

关于ios - tvOS 如何检查 UITabBar 是否聚焦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55358986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com