2016-07-16 7 views
0

私はtextView.dataDetectorTypes = UIDataDetectorTypeLink;が自動的にリンクを検出することができます。UITextViewにurl(ブール値)があるかどうかを確認するか、URLを抽出します

これは簡単なようですが、UITextViewのdataDetectorが実際に一致したかどうかを確認する方法が見つかりません。

私は(ちょうどアイデアを投げ、私はおそらくチェックするNSDataDetectorメソッドを使用することができますが、私は確認する必要があると思います)NSDataDetectorへの参照を引っ張ってBOOL hasLink = textView.hasLink;またはBOOL hasLink = textView.text.hasLink;または多分道のようなものを探しています

これをチェックする方法はありませんか、それとも個別に確認する必要がありますか?

編集:

だから私はちょうど(以下コード)、これを行うには私自身の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

を持っている場合はいあなたはTextViewののcontaneのURLかどうかをチェックするためにwhantこの戻り、このコードを使用しますか? –

答えて

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

私はEditヘッダーの下に投稿したソリューションはおそらくこれのより安全な選択肢だと思います – gadu

関連する問題