我有一个UITextView,里面有两个不同的超链接。为了在VoiceOver启动时有机会在这两个链接之间进行选择,我做到了:
class MyTextView {
override func awakeFromNib() {
super.awakeFromNib()
let str = "xxxxxx Option 1 yyyy Option 2"
let attrStr = NSMutableAttributedString(str)
let rangeOption1 = (str as NSString).range(of: "Option 1")
let rangeOption2 = (str as NSString).range(of: "Option 2")
attrStr.addAttributes([.link: "option1", range: rangeOption1])
attrStr.addAttributes([.link: "option2", range: rangeOption2])
self.attributedText = attrStr
}
override var isAccessibilityElement: Bool {
get { return true }
set {}
}
override var accessibilityLabel: String? {
get { return "Link Options" }
set {}
}
override var accessibilityCustomActions: [UIAccessibilityCustomAction]? {
get {
return [
UIAccessibilityCustomAction(name: "Choose Option One", target: self, selector: #selector(option1)),
UIAccessibilityCustomAction(name: "Choose Option Two", target: self, selector: #selector(option2))]
}
set {}
}
@objc func option1() { print ("Option 1") }
@objc func option2() { print ("Option 2") }
}我按照最小33的WWDC视频做了这件事。我不能管理的是,它是说滑动或向下选择一个自定义动作,然后双击激活时,textView是集中。
现在它说"xxxxxx选项1暂停链接暂停yyyy选项2暂停链接暂停“
一旦textView集中,如果我滑动它,它告诉我“选择选项一”和“选择选项二”。如果在它说“选择选项X”后,我双击,则选择更正选项。
技术上一切都是好的,我只是想宣布给用户的指示,就像它在视频中所做的那样。最坏的情况是,我将把它附加到accessibilityLabel中,但这是很麻烦的。
发布于 2019-06-17 23:56:00
发布于 2019-03-01 15:17:09
https://stackoverflow.com/questions/54945989
复制相似问题