SLElement 不存在 xCode 5.1



我在UITableView中有一个按钮。UITableView是在storyboard中创建的,但是按钮是实际创建的。我:

发生意外异常SLUIAElementInvalidException for reason: Element ''不存在。

当我尝试"点击"按钮元素时:

SLButton *addMemberButton = [SLButton elementWithAccessibilityLabel:@"Add Member"];
SLLog(@"%@", addMemberButton); // prints <SLButton description:"Add Member">
[addMemberButton tap];

我在viewController的viewDidLoad中有以下代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.addMemberButton.isAccessibilityElement = YES;
    self.addMemberButton.accessibilityValue  = @"Add Member";
    self.addMemberButton.accessibilityTraits = UIAccessibilityTraitButton;
}

当我使用可访问性检查器时,按钮是可访问的,并且具有我创建的标签。我甚至尝试在UITableView中关闭可访问性:

self.tableView.isAccessibilityElement = NO;
self.tableView.accessibilityLabel = nil;

这没有区别。对于如何解决这个问题,我将非常感激。

看起来你想通过标签匹配按钮,但"Add Member"实际上是按钮的

SLButton *addMemberButton = [SLButton elementWithAccessibilityLabel:nil value:@"Add Member" traits:UIAccessibilityTraitButton];

应该工作,尽管我认为将"添加成员"设置为标签更合适(参见accessibilityLabelaccessibilityValue的描述,以及此处的指导方针)。

如果"Add Member"是按钮的标题,实际上您不需要手动设置任何属性——按钮会自动从标题中获得其可访问性标签。

最新更新