Я пытаюсь улучшить поддержку Voice Over в приложении. У меня есть UISearchBar
. Я установил свойство showBookMarks
в YES
. И я установил пользовательское изображение с:Как сделать значок закладки UISearchBar доступным?
[searchbar setImage:icon forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal];
У меня есть проблема, что с Voice Over включен, нет никакого способа, чтобы активировать значок закладки. Если я введу текст, появится значок «Очистить», и его можно будет выбрать и активировать, как ожидалось. Но как только текст очищается и появляется значок закладки, его нельзя выбрать. Независимо от того, где я нажимаю, прямоугольник Voice Over всегда окружает всю панель поиска, включая значки.
Я попытался установить accessibilityLabel
и accessibilityTraits
на UIImage
для значка. Я установил isAccessibilityElement
на YES
. Ничто не работает.
Кто-нибудь знает, какие шаги необходимы, чтобы сделать значок закладок в UISearchBar
доступным?
Вот полный код панели поиска:
UISearchBar *bar = [[UISearchBar alloc] init];
[bar sizeToFit];
bar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
bar.placeholder = @"Search listed items";
bar.autocapitalizationType = UITextAutocapitalizationTypeNone;
bar.autocorrectionType = UITextAutocorrectionTypeNo;
bar.keyboardType = UIKeyboardTypeDefault;
bar.showsBookmarkButton = YES;
bar.text = @"";
UIImage *icon = [UIImage imageNamed:@"bookmarks.png"];
icon.accessibilityLabel = @"Bookmarks";
icon.accessibilityTraits = UIAccessibilityTraitButton;
icon.isAccessibilityElement = YES;
[bar setImage:icon forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal];
[bar setPositionAdjustment:UIOffsetMake(-1, -1) forSearchBarIcon:UISearchBarIconBookmark];
Дополнительная информация:
Следует отметить, что панель поиска используется с UITableViewController
, который связан с UISearchDisplayController
. Строка поиска устанавливается в виде таблицы headerView
.
И все это делается в коде. Нет раскадровки или xibs.
@ downvoter, пожалуйста, объясните нижний план. Я отправил точный ответ на проблему, которая у меня была. Это недокументированное требование для правильной работы Voice Ovet для этого случая. – rmaddy
Пожалуйста, объясните, где вы обнаружили, что размер UISearchBarIconBookmark должен быть 40x29px? Это минимальный размер, максимальный размер, точный размер или точное соотношение? Я смог заставить его работать с некоторыми другими размерами, но я не знаю, какой из них рекомендуется. –
Я нашел его методом проб и ошибок. Мой первоначальный размер не работал. Когда я попробовал указанный размер, он начал работать. Я не тестировал другие комбинации, поэтому, возможно, будут работать некоторые другие размеры. Если вы знаете о других размерах, которые работают, пожалуйста, разместите их, чтобы другие могли воспользоваться. – rmaddy