4

UIAccessibilityの通知後のメソッドは、ある種の非同期呼び出しであることに気付きました。昨日ではなく、最後のイベントを耳にする必要があるので、これは私には非常に正しいように聞こえます...しかし、この例を参照してください:

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

耳にできるのは「弦2」のみです。

この例は非常に単純です。「文字列2」を「文字列1」に追加すると、問題が解決すると答えることができます。しかし、私はそのような状況にありますが、2つの文字列を追加することはできません。

私の質問は:通知を同期する方法はありますか?

別の例は次のとおりです。タブバーアプリがあるとしましょう。特定のバーに切り替えるときは、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) 。

私の見解では、これは現在、通知を同期するための最良の方法です。

そして、タブバーに関する2番目のリクエストについては、新しい専用の質問を書くことができます...

于 2018-12-06T16:46:12.003 に答える