Ke *_* MA 5 alert accessibility ios voiceover
我有一个按钮,当我点击按钮时,会有一个警报.
当我打开画外音并点击按钮时,点击警报确定按钮以关闭警报,焦点将返回到页面/后退按钮的顶部,而不是触发警报的按钮.
我正在使用这段代码将焦点移回按钮:
let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, button)
})
Run Code Online (Sandbox Code Playgroud)
问题是在您关闭警报后,焦点将返回到顶部并首先读取标签,然后返回按钮.重点不是直接按钮,看起来很蹩脚.
我检查了一些Apple应用程序,我发现在它们解除警报后,焦点将在警报弹出之前返回到上一个元素.知道怎么做到这一点?谢谢!
我今天早些时候遇到了这个问题 - 我解决它的方法是发布 aUIAccessibilityScreenChangedNotification而不是 a UIAccessibilityLayoutChangedNotification:
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, button)
布局更改是指在视图的当前上下文中更改布局。当用户经历上下文变化时,即消除警报并返回到呈现视图控制器时,可以使用屏幕变化。
您也可以摆脱该dispatch_after障碍 - 使用屏幕更改通知将为您提供与您在 Apple 应用程序之一中描述的相同功能。
以下是解释 UIAccessibilityLayoutChangedNotification 和 UIAccessibilityScreenChangedNotification 之间差异的答案的链接。
| 归档时间: |
|
| 查看次数: |
1486 次 |
| 最近记录: |