首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用KIF单击UITextView中的链接

使用KIF单击UITextView中的链接
EN

Stack Overflow用户
提问于 2015-01-29 04:37:42
回答 1查看 431关注 0票数 1

可以使用KIF点击UITextViews中的链接吗?使用可访问性检查器似乎将UITextView视为单个视图,并且似乎无法识别链接。

EN

回答 1

Stack Overflow用户

发布于 2015-09-11 03:57:23

似乎UITextView对象中的链接需要比使用KIF的标准点击更长的按键才能激活。我通过使用KIFUITestActor上的一个类别编写自己的测试步骤解决了这个问题。代码试图在UITextView中找到您想要点击的文本,然后长按它。

代码语言:javascript
复制
- (void)tapText:(NSString *)text inTextViewWithAccessibilityIdentifier:(NSString *)identifier
{
    [self runBlock:^KIFTestStepResult(NSError *__autoreleasing *error) {
        UITextView *textView = nil;
        UIAccessibilityElement *element = nil;
        [self waitForAccessibilityElement:&element view:&textView withIdentifier:identifier tappable:YES];
        KIFTestCondition([textView isKindOfClass:[UITextView class]], error, @"The accessibility element is not a UITextView");
        NSRange range = [[textView.textStorage string] rangeOfString:text];
        KIFTestCondition(range.length > 0, error, @"The text '%@' was not found in UITextView with accessibility identifier: %@", text, identifier);
        range.length = 1;
        range = [textView.layoutManager glyphRangeForCharacterRange:range actualCharacterRange:nil];
        CGRect rect = [textView.layoutManager boundingRectForGlyphRange:range inTextContainer:textView.textContainer];
        rect = CGRectOffset(rect, textView.textContainerInset.left, textView.textContainerInset.top);
        CGPoint point = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
        [textView longPressAtPoint:point duration:0.1f];
        return KIFTestStepResultSuccess;
    }];
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28201958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档