首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UITabBarController的UIAccessibility focus

使用UITabBarController的UIAccessibility focus
EN

Stack Overflow用户
提问于 2019-10-04 18:06:37
回答 1查看 459关注 0票数 3

如何将UIAccessibility焦点设置在UITabBarController的选定选项卡的内容上?它会一直聚焦在选定的UITabBarItem上。

我已经尝试在UITabBarControllerDelegate中设置焦点

代码语言:javascript
复制
    func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {

        if let destination = (viewController as? UINavigationController)?.viewControllers.first {
            UIAccessibility.post(notification: .screenChanged, argument: destination)
        } else {
            UIAccessibility.post(notification: .screenChanged, argument: viewController)
        }
    } 

我还尝试在选定的UIViewController中设置焦点

代码语言:javascript
复制
    override func viewDidAppear(_ animated: Bool) {

        super.viewDidAppear(animated)

        UIAccessibility.post(notification: .screenChanged, argument: accessibilityElements?.first)
    }

不幸的是,可访问性的焦点并没有改变。我不确定这是iOS 13的问题还是一般的选项卡栏问题,因为即使是苹果自己的AppStore应用程序在选择选项卡时也不会改变辅助功能的焦点。

EN

回答 1

Stack Overflow用户

发布于 2020-02-21 21:03:23

我不确定它有多大帮助,但我已经设法找到了一个解决方法,通过发布延迟通知。

代码语言:javascript
复制
override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        if UIAccessibility.isVoiceOverRunning {
             DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(1.0 * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: {
                 UIAccessibility.post(notification: .layoutChanged, argument: self.whateverElementYouNeed)
             })
        }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58234254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档