1

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;
}
4

1 に答える 1

0

plzはこのコードを使用して、テキストビューにURLがある場合はyesを返します

-(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];
}
于 2016-07-16T04:18:58.380 に答える