在将焦点转移到某个元素之前,如何等待公告完成?
Posted
技术标签:
【中文标题】在将焦点转移到某个元素之前,如何等待公告完成?【英文标题】:How can I wait for announcement to complete before moving focus to some element? 【发布时间】:2021-08-24 06:28:00 【问题描述】:我有一个场景,我想在将焦点转移到一些不同的元素之前发布一个公告。当我尝试这样做时-
UIAccessibility.post(notification: .announcement, argument: "a very very very long text")
UIAccessibility.post(notification: .layoutChanged, argument: headerResult)
对于上面的代码,我的焦点在没有完成公告的情况下转移到了 headerResult。 我想保持两个通知彼此独立。 谢谢
【问题讨论】:
【参考方案1】:您可以收听announcementDidFinish
通知(请参阅documentation)并检查用户字典以将announcementStringValueUserInfoKey
键的值与您的“非常非常...”字符串进行比较,这样您就知道哪个公告完成了.但请注意,如果焦点在没有他们互动的情况下移动(尤其是在长文本公告之后发生),这对视障人士来说是非常混乱的。您应该检查announcementWasSuccessfulUserInfoKey
的值,以仅在成功阅读公告直到结束时才移动焦点。
【讨论】:
以上是关于在将焦点转移到某个元素之前,如何等待公告完成?的主要内容,如果未能解决你的问题,请参考以下文章
如何在运行某些代码之前等待 flash (as2) 加载子元素?