2015-07-14 1 views
3

У нас есть приложение с меню. Существует UIBarButton, который можно использовать для его открытия. Вид сверху открывается, чтобы отобразить меню. Когда VoiceOver включен, мы получаем ошибку ниже. Я предполагаю, потому что область, котораяНе удалось найти <UINavigationButton ... в списке отсортированного вида с VoiceOver на

2015-07-14 14:29:11.772 xxxxx[318:36506] |error| Could not find <UINavigationButton: 0x13e57db60; frame = (5 6; 40 30); opaque = NO; layer = <CALayer: 0x170435ee0>> in a list of sorted view [parent: <MobileUIApplication: 0x13e6023d0>] siblings (
    "<UITableView: 0x13e8ac800; frame = (0 20; 375 647); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; autoresizesSubviews = NO; gestureRecognizers = <NSArray: 0x17444cb10>; layer = <CALayer: 0x170436560>; contentOffset: {0, 0}; contentSize: {375, 680}>" 
). If this happened right around a screen change, it might be okay, but otherwise this is probably a bug. 
2015-07-14 14:29:11.775 xxxxx[318:36506] |error| Could not find <UINavigationButton: 0x13e57db60; frame = (5 6; 40 30); opaque = NO; layer = <CALayer: 0x170435ee0>> in a list of sorted view [parent: <MobileUIApplication: 0x13e6023d0>] siblings (
    "<UITableView: 0x13e8ac800; frame = (0 20; 375 647); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; autoresizesSubviews = NO; gestureRecognizers = <NSArray: 0x17444cb10>; layer = <CALayer: 0x170436560>; contentOffset: {0, 0}; contentSize: {375, 680}>" 
). If this happened right around a screen change, it might be okay, but otherwise this is probably a bug. 

Я добавил UIAccessibilityPostNotification (UIAccessibilityLayoutChangedNotification, ноль); но я все еще получаю ошибку.

Должен ли я быть обеспокоен и что с этим нужно сделать?

+0

Я получаю ту же ошибку с разными иерархами представлений (то есть не UINavigationStuff), всегда задавался вопросом, что это такое, но из-за нехватки времени, которое не могло быть опубликовано надлежащим вопросом [список рассылки разработчиков доступности для Apple] (https: // lists.apple.com/mailman/listinfo/accessibility-dev), я настоятельно рекомендую вам сделать это, потому что ответ от инженера по доступности Apple, вероятно, единственный, который может привести к разрешению (я думаю, что никто больше не «инсайдер» «будет иметь представление о том, что происходит». –

+0

Ошибка, вероятно, вызвана попыткой сделать некоторую доступность неправильным образом. Можете ли вы воспроизвести проблему в примерном проекте и поделиться некоторым кодом? Я боюсь, что нет общего правила, чтобы исправить это. –

ответ

1

Вы используете UIAccessibilityLayoutChangedNotification, который используется для уведомления, что макет элемента или части UIView изменился. Попробуйте использовать UIAccessibilityScreenChangedNotification.

Если вы используете прокрутки tableView, вы можете использовать UIAccessibilityPostNotification(UIAccessibilityPageScrolledNotification, [self.tableView indexPathsForVisibleRows]);, чтобы каждый раз, когда прокручивается TableView, фокус находится в первой ячейке вашего tableView.