Próbuję uzyskać głos nad pracą z widokiem OpenGL, w szczególności z ramy cocos2d.Niestandardowy interfejs UIView nie jest dostępny na Voice over
Od przewodnika jabłko Accessibility Śledziłem tę sekcję: Make the Contents of Custom Container Views Accessible
Mam podklasy widoku (CCGLView dla Cocos2d osób), która jest UIView, w celu wdrożenia protokołu UIAccessibilityContainer nieformalny.
realizacja UIAccessibilityContainer w moim podklasy UIView:
-(NSArray *)accessibilityElements{
return [self.delegate accessibleElements];
}
-(BOOL)isAccessibilityElement{
return NO;
}
-(NSInteger)accessibilityElementCount{
return [self accessibilityElements].count;
}
-(NSInteger)indexOfAccessibilityElement:(id)element{
return [[self accessibilityElements] indexOfObject:element];
}
-(id)accessibilityElementAtIndex:(NSInteger)index{
return [[self accessibilityElements] objectAtIndex:index];
}
Kod ten nazywany jest uzyskiwanie i -(NSArray *)acessibilityElements
zwraca tablicę UIAccessibilityElements. Jednak sterowanie głosowe nie pojawia się po dotknięciu ekranu. Jakieś pomysły na temat tego, co tracę lub robię źle?
Inne informacje:
Używam storyboard i dodanie CCGLView do UIView w serii ujęć. _director.view jest CCGLView, który podklasowałem.
// Add the director as a child view controller.
[self addChildViewController:_director];
// Add the director's OpenGL view, and send it to the back of the view hierarchy so we can place UIKit elements on top of it.
[self.view addSubview:_director.view];
[self.view sendSubviewToBack:_director.view];
Przez chwilę podejrzewałem, że ponieważ dodałem podrzędny że to było przyczyną, że nie pojawi się, ale próbowałem też instacji UIView w serii ujęć, w ten sam sposób, ale to też nie działa.
Również w ten sposób tworzę każdy UIAccessibilityElement w tablicy.
UIAccessibilityElement *elm = [[UIAccessibilityElement alloc] initWithAccessibilityContainer:view];
elm.accessibilityFrame = f;
elm.accessibilityLabel = t.letter;
elm.isAccessibilityElement = YES;
elm.accessibilityHint = @"Button";
elm.accessibilityValue = t.letter;
elm.accessibilityTraits = UIAccessibilityTraitButton;
To doprowadzało mnie do szału już od kilku godzin - dzięki! –