Ich versuche, die Arbeit mit einer OpenGL-Ansicht, speziell aus dem cocos2d-Framework, mit VoiceOn zu beginnen.Benutzerdefiniertes UIView zeigt keine Eingabehilfen für Voice Over
aus der Apple-Accessibility Führung folgte ich diesen Abschnitt: Make the Contents of Custom Container Views Accessible
Ich habe die Ansicht (CCGLView für cocos2d Personen) unterklassiert, die eine UIView ist, das informelle UIAccessibilityContainer Protokoll zu implementieren.
UIAccessibilityContainer Implementierung in meiner Unterklasse 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];
}
Dieser Code wird immer genannt und -(NSArray *)acessibilityElements
werden eine Reihe von UIAccessibilityElements zurück. Die Voice-Over-Steuerelemente werden jedoch nicht angezeigt, wenn ich den Bildschirm berühre. Irgendwelche Ideen darüber, was ich vermisse oder was ich falsch mache?
Weitere Informationen:
Ich verwende ein Storyboard und das Hinzufügen der CCGLView zum UIView im Storyboard. Die _director.view ist die CCGLView, die ich unterklassifiziert habe.
// 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];
Für eine Weile ich vermuten, weil ich hinzugefügt, um die Subview, dass diese es verursacht wurde nicht auftauchen, aber ich habe auch versucht, die gleiche Art und Weise die UIView im Storyboard Subklassen aber es funktioniert auch nicht.
Auch dies ist, wie ich jedes UIAccessibilityElement im Array erstellen.
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;
Das hat mich jetzt für ein paar Stunden verrückt gemacht - danke! –