VoiceOver在UITextView的两侧查找"清空行"

Bre*_*don 6 uitextview ios voiceover

我有一个表视图,其中每个单元格只包含一个UITextView,设置如下:

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
// Declare and set text & frame
...
UITextView *textView = [[UITextView alloc] initWithFrame:frame];
textView.backgroundColor = [UIColor clearColor];
textView.editable = NO;
textView.font = font;
textView.scrollEnabled = NO;
textView.text = text;
[cell.contentView addSubview:textView];
Run Code Online (Sandbox Code Playgroud)

当我使用VoiceOver进行测试时,我可以在文本视图中文本的左右边缘找到两个只是小空项目的地方,VoiceOver在其中显示"空行".如果我有一个多行字符串,例如@"multiple\nlines",那么在第一行的右边缘有一个"空行",而在第二行的左边缘有另一行.我找不到第一行左边或第二行右边的"空行",但据我所知,他们很难找到.

为什么VoiceOver会找到这些"空行"?我怎么摆脱他们?

Ben*_*man 0

这是我们今天提出的针对此错误的解决方法。

子类 UITextView 并覆盖:

- (BOOL)isAccessibilityElement {
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

返回NO选择退出 VoiceOver。然后,创建一个容器,将文本视图添加到其中,并在容器视图上设置自定义的accessibilityLabel:

containerView.accessibilityLabel = textview.text
Run Code Online (Sandbox Code Playgroud)

这显然在某些情况下不起作用(我没有太多地研究编辑),但它至少可以让您到达文本视图不显示相关行为的地方。