Проверка, имеет ли UITextView url (логическое значение) или извлекает Url

Я знаю, что могу сделать textView.dataDetectorTypes = UIDataDetectorTypeLink; для автоматического определения ссылок.

Теперь это кажется простым, но я не могу найти способ проверить, UITextViewdataDetector действительно нашел совпадение.

Я ищу что-то вроде BOOL hasLink = textView.hasLink; или же BOOL hasLink = textView.text.hasLink; или, может быть, даже способ получить ссылку на NSDataDetector(Я мог бы использовать NSDataDetector Способы проверки, но я должен подтвердить, просто выкидывая идеи)

Нет ли встроенного способа проверить это или я должен подтвердить это самостоятельно?

Редактировать:

Так что я просто использовал свой NSDataDetector для этого (код ниже), но остается вопрос: действительно ли нет способа извлечь обнаруженный тип данных или подтвердить существование обнаруженного типа данных в UITextView?

Вот что я использовал для проверки себя:

-(BOOL) doesTextHaveLink:(NSString *)text {
    NSDataDetector *linkDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
    NSArray *matches = [linkDetector matchesInString:text options:0 range:NSMakeRange(0, [text length])];
    for (NSTextCheckingResult *match in matches) {
        if ([match resultType] == NSTextCheckingTypeLink) {
            return YES;
        }
    }
    return NO;
}

1 ответ

Пожалуйста, используйте этот код, это возвращение да, если textview имеет URL

-(BOOL)checkUrl:(NSString *)strText{
    NSString *urlRegEx =
    @"(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+";
    NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx]; 
    return [urlTest evaluateWithObject:strText];
}
Другие вопросы по тегам