我有一个UITextView,部分文本是可点击的。链接工作。当我在iPhone的设置中打开辅助功能并打开Voice over时,会读出textview的文本,但链接不起作用。启用textview的故事板上的辅助功能,并在辅助功能属性下选择链接,并且在打开语音时链接不起作用。我也尝试将isAccessbilityElement = true添加到textview,结果没有运气。
UITextView将添加到表视图上的自定义单元格中。
提前感谢您的建议。
我没有解决方案。我还在找。
现在我在我的应用程序中使用UIWebview而不是UITextView。使用UIAccessiblity,UIWebview更有效。
您必须覆盖默认行为以选择UITextViews测试或您提供的链接。看到这堂课UIAccessibilityElement
。希望这对你有所帮助
该问题涉及在必须在UITextView中激活链接时使用的specific VoiceOver gesture。
我创建了一个空白项目,包括以后的代码片段,以获取myTextView
元素中的2个URL:
class TextViewURLViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var myTextView: UITextView!
let myString = "Follow this developers guide if you already know the VoiceOver gestures."
let myDevURL = "https://a11y-guidelines.orange.com/mobile_EN/dev-ios.html"
let myGesturesURL = "https://a11y-guidelines.orange.com/mobile_EN/voiceover.html"
override func viewDidLoad() {
let attributedString = NSMutableAttributedString(string: myString)
attributedString.addAttribute(.link,
value: myDevURL,
range: NSRange(location: 12,
length: 17))
attributedString.addAttribute(.link,
value: myGesturesURL,
range: NSRange(location: 52,
length: 19))
myTextView.attributedText = attributedString
myTextView.font = UIFont(name: myTextView.font!.fontName,
size: 25.0)
}
func textView(_ textView: UITextView,
shouldInteractWith URL: URL,
in characterRange: NSRange,
interaction: UITextItemInteraction) -> Bool {
UIApplication.shared.open(URL, options: [:])
return false
}
}
按照以下步骤激活链接:
links
项目。Open
操作。唯一要记住的是双击并按住,直到弹出窗口出现在链接上方。