iOS VoiceOver按钮没有调用目标方法
问题描述:
我有一个UIButton子类,ACTLanguageButton实际上只是做了一些自定义UI更改,以便我可以重用该样式。在子类中,我有以下代码有关的辅助功能:iOS VoiceOver按钮没有调用目标方法
- (BOOL)isAccessibilityElement {
return YES;
}
- (NSString *)accessibilityLabel {
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:self.language];
NSString *displayLanguage = [locale displayNameForKey:NSLocaleIdentifier value:self.language];
return [NSString stringWithFormat:@"Language Preference: %@", displayLanguage];
}
- (NSString *)accessibilityHint {
return @"Opens the list of available languages for accessible services.";
}
- (UIAccessibilityTraits)accessibilityTraits {
return UIAccessibilityTraitButton;
}
而且在实例化,是ACTLanguage按钮的上海华UIView的:
self.languageButton = [[ACTLanguageButton alloc]initWithFrame:CGRectMake(self.frame.size.width - 120, 20, 120, 25)];
[self addSubview:self.languageButton];
[self.languageButton addTarget:self action:@selector(onLanguages) forControlEvents:UIControlEventTouchUpInside];
,然后方法“onLanguages”本身这只是表明,模态出现在UIView的一个弹出窗口视图:
- (void)onLanguages {
[self.languagePopupView showWithCallback:nil];
}
中的按钮操作工作完全没有的VoiceOver启用(正常敲击使用的)。另外,当我在模拟器上使用OS X上的辅助功能检查器时,该操作也可以很好地执行。
在真实设备上(在运行9.3的iPhone 5上测试),“onLanguages”方法永远不会被调用。可访问性标签,提示和特征可以正确读取,我可以将元素集中到很好,但双击不会按预期触发“onLanguages”方法。
任何想法?
这太棒了。我忽略它只是为了调用[self sendActionsForControlEvents:UIControlEventTouchUpInside];并立即开始工作。非常感谢! – AlexKoren