iPhone - заставить VoiceOver объявить об изменении текста метки - PullRequest
9 голосов
/ 02 апреля 2011

Можно ли с помощью VoiceOver на iPhone объявить обновленный текст на этикетке, если он изменится?

Это будет аналогично живому региону в ARIA.

Спасибо.

Ответы [ 2 ]

19 голосов
/ 20 июня 2011

Вы можете сделать так, чтобы 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

Это отлично сработало для меня:)

1 голос
/ 06 июля 2019

Вот версия Swift 4

UIAccessibility.post(notification: UIAccessibility.Notification.announcement, argument: "Your text")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...