gpt4 book ai didi

iOS VoiceOver 按钮不调用目标方法

转载 作者:行者123 更新时间:2023-11-29 11:41:23 29 4
gpt4 key购买 nike

我有一个 UIButton 子类 ACTLanguageButton,它实际上只是做了一些自定义 UI 更改,以便我可以重用该样式。在子类中,我有以下与可访问性相关的代码:

- (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;
}

在实例化的 UIView 中,它是 ACTLanguage 按钮的父 View :

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”本身,它只显示一个弹出 View ,它以模态方式出现在 UIView 上:

- (void)onLanguages {
[self.languagePopupView showWithCallback:nil];
}

按钮操作在没有启用 VoiceOver 的情况下工作得很好(正常的点击使用)。此外,当我在带有模拟器的 OS X 上使用 Accessibility Inspector 时,操作也执行得很好。

在真实设备上(在运行 9.3 的 iPhone 5 上测试),永远不会调用“onLanguages”方法。可访问性标签、提示和特征被正确读取,我可以很好地聚焦元素,但双击不会按预期触发“onLanguages”方法。

有什么想法吗?

最佳答案

获得此工作的万无一失的方法是实现 acccessibilityActivate()并从那里调用 onLanguages()

关于iOS VoiceOver 按钮不调用目标方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46370733/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com