Проверка, имеет ли UITextView url (логическое значение) или извлекает Url
Я знаю, что могу сделать textView.dataDetectorTypes = UIDataDetectorTypeLink;
для автоматического определения ссылок.
Теперь это кажется простым, но я не могу найти способ проверить, UITextView
dataDetector действительно нашел совпадение.
Я ищу что-то вроде 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];
}