如何将VoiceOver初始焦点设置在UITableView

时间:2015-11-25 16:23:44

标签: ios uitableview voiceover uiaccessibility

在我们的iOS应用程序中,我们有一个带有UINavigationController的屏幕,rightBarButtonItems中的三个UIBarButtonItem,一个带有UITableView子视图的UIView内容视图。

每次应用程序到达前台时,VoiceOver都会将初始焦点放在最左边的UIBarButtonItem上。我们希望关注UITableView中的最顶层单元格(初始启动)或用户在应用程序进入后台之前主动选择的单元格。

我们已经尝试调用UIAccessibilityPostNotification()但这只有在我们添加延迟并且看起来非常脆弱并且会让用户感到困惑时才有效,因为焦点将从UIBarButtonItem开始然后跳转。

2 个答案:

答案 0 :(得分:3)

dispatch_after(dispatch_time(DISPATCH_TIME_NOW,Int64(0.75 * Double(NSEC_PER_SEC))),dispatch_get_main_queue()){() - >无效              UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,self.view) }

这可能有用。

答案 1 :(得分:0)

据我所知uiaccessibilitypostnotification适用于延迟,即使它很脆弱,你可以在视图中用0.5秒延迟调用方法确实出现方法!

您还可以尝试另一种方式。加载view后,禁用条形按钮的辅助功能,并仅为tableview设置辅助功能!您需要更改accessibilityElements数组,并且数组中的第一个元素应为table view,并将isAccessibilityElemnt设置为NO以便其他元素关闭可访问性! !!!