10

是否可以在 iPhone 上使用 VoiceOver 来宣布标签上的更新文本,如果它发生变化?

这类似于 ARIA 中的实时区域。

谢谢。

4

2 回答 2

21

您可以使用 VoiceOver 播报您喜欢的任何文本:

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"Your text");

如果标签应在更新后立即宣布其文本,只需扩展UILabel并覆盖该setText方法。

.h 文件:

@interface UIVoicedLabel : UILabel {

}

@end

及其实现:

#import "UIVoicedLabel.h"

@implementation UIVoicedLabel

- (void) setText:(NSString *)text {
    // Set the text by calling the base class method.
    [super setText:text];
    // Announce the new text.
    UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, text);
}

@end

这对我来说非常有效:)

于 2011-06-20T07:43:58.087 回答
2

这是 Swift 4 版本

UIAccessibility.post(notification: UIAccessibility.Notification.announcement, argument: "Your text")
于 2019-07-05T21:15:47.107 回答