4

我注意到 UIAccessibility 发布通知方法是某种异步调用。这对我来说听起来很正确,因为您需要听到最后的事件,而不是昨天发生的事件......但是请看这个例子:

UIAccessibilityPostNotification( UIAccessibilityAnnouncementNotification, @"String 1");
UIAccessibilityPostNotification( UIAccessibilityAnnouncementNotification, @"String 2");

您只能听到“字符串 2”。

这个例子很简单,你可以回答可以将“string 2”附加到“string 1”,问题就解决了。但我处于这种情况,但我不能附加两个字符串。

我的问题是:有没有同步通知的方法?

另一个例子如下。假设您有一个标签栏应用程序。当您切换到特定栏时,我希望 VoiceOver 说出特定文本。您可能知道,当您选择一个选项卡时,VoiceOver 会说自己类似于“已选择 Bar1 栏”。

所以... VoiceOver 公告涵盖了我自己的特定文本。

4

2 回答 2

0

对于 iOS 6.0+,您可以使用 UIAccessibilityAnnouncementDidFinishNotification 来同步您的公告。

于 2012-11-07T08:40:46.983 回答
0

自 iOS 11 以来,引入了新的属性辅助功能属性,包括一个特定的accessibilitySpeechQueueAnnouncement键,可以将公告排队或中断当前语音。

但是,如果您发送了许多通知并且 VoiceOver 需要接管(例如,用户轻弹以聚焦新元素),则一旦系统发出元素的属性(stackoverflow answer) ,未发出声音的通知将被删除.

在我看来,这是目前同步通知的最佳方式

对于您关于标签栏的第二个请求,可以编写一个新的专门问题......

于 2018-12-06T16:46:12.003 回答