gpt4 book ai didi

ios - UITableViewCell 中的自定义 VoiceOver 操作

转载 作者:可可西里 更新时间:2023-11-01 03:07:09 24 4
gpt4 key购买 nike

UITableView 可编辑时,其 UITableViewCells 允许用户在 VoiceOver 打开时执行自定义操作。当 VoiceOver 光标位于单元格上时,用户可以通过向上或向下滑动来听到可用的操作,然后通过双击屏幕上的任意位置来调用这些操作。我的单元格中只有两个可用操作:删除(调用通常的单元格删除)和默认(调用单元格上的点击)。我的问题有两个:

有没有办法向单元格添加自定义 VoiceOver 操作?

默认情况下,即使 TableView 委托(delegate)在 tableView:titleForDeleteConfirmationButtonForRowAtIndexPath: 方法中返回自定义标题,Delete 操作也会被读出为“Delete”。如何让 VoiceOver 读出自定义操作标题?

最佳答案

根本没有用于向 VoiceOver 提供自定义元素操作的 API。没有 UIAccessibility* 协议(protocol)为此提供任何可能。我想如果您需要添加自定义操作并希望 Apple 将在未来的某个 iOS 版本中实现它(或者它会在一个月后出现在 iOS 7 中),您应该提交雷达。

更新:从 iOS 8 开始,您可以设置/实现 accessibilityCustomActions属性返回您的 UIAccessibilityCustomAction 的数组对象(请注意,除了您提供的内容之外,VoiceOver 仍会在其 UI 中添加“激活项目”默认操作。):

self.accessibilityCustomActions = [
UIAccessibilityCustomAction(name: NSLocalizedString("Close", comment: ""), target: self, selector: "didPressClose")
]
...
@objc
func didPressClose() -> Bool {
...
}

像往常一样使用 Swift 和选择器,不要忘记添加 @objc如果您不子类化 NSObject,则 Swift 中自定义操作的目标方法的属性/该方法是私有(private)的,否则在尝试使用 VoiceOver 激活操作时,它不会执行任何操作并播放“达到边界的尽头”声音(至少在 iOS 8.2 和 8.3 上我测试了子类 NSObject 的目标对象)。

关于你的第二个问题 - 感觉像是一个错误,你可以再次提交雷达 :-)

关于ios - UITableViewCell 中的自定义 VoiceOver 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16316189/

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