2016-07-16 54 views
0

我知道我能做到textView.dataDetectorTypes = UIDataDetectorTypeLink;自動檢測環節。檢查是否有UITextView的URL(布爾值)或提取URL

現在這個看起來很簡單,但我無法找到一個方法來檢查,如果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; 
} 
+0

你whant檢查的TextView contane網址或沒有? –

回答

0

PLZ使用此代碼,這個回報是,如果有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]; 
} 
+0

我想我張貼的編輯標題下的解決方案可能是這一個更安全的替代 – gadu