1

OHAttributedLabel に sitename.com/abc.html のようなリンクを表示する必要があります。そして、このURLのsetLinkを次のようにしたい: userlink:sitename.com/abc.html

次に、ラベルのリンクをクリックし、UIWebView デリゲートで 2 回クリック アクションを返します。

ワンクリックアクションが必要です

何をすればよいでしょうか?

アップデート:

////seeingUrlString = @"sitename.com/abc.html";
[_tmpContentAttributeString setLink:[NSURL URLWithString:seeingUrlString] range:hyperLinkRange];

    self.contentLabel.attributedText = _tmpContentAttributeString;


-(BOOL)attributedLabel:(OHAttributedLabel *)attributedLabel shouldFollowLink:(NSTextCheckingResult *)linkInfo
{

    CustomWebView *_customWebViewa = [[CustomWebView alloc] init];
    _customWebViewa.webView.scrollView.scrollEnabled = NO;
    _customWebViewa.webView.scrollView.bounces = NO;
    _customWebViewa.webView.frame = self.view.bounds;

    NSString *_url = [linkInfo.URL absoluteString];
    if (![_url hasPrefix:HTTPPrefix]) {
        _url = [HTTPPrefix stringByAppendingString:_url];
    }
    _url = [NSString stringWithFormat:@"%@%@%@", _url, Slash, NoFollow];
    [self loadWebView:_customWebViewa.webView url:_url];
     return NO;
}

2 つのクリック アクション 1 つは OHAttributedLabel デリゲートから、もう 1 つはどこから来たのかわかりません ...

更新2:

実際には、OHAttributedLabel にリンク (sitename.com/abc.html など) を表示するだけで済みますが、このリンクは使用しないでください。ユーザーがクリック可能なリンクであることを確認し、リンクをタップすると、OHAttributedLabel デリゲートが実際に起動します。カスタム リンク URL をアップすると、カスタム リンク URL は次のようになります。

ユーザーリンク:sitename.com/abc.html

OAHAtrributedLabel で表示 URL を通常の文字列として扱いたい

4

1 に答える 1

0

OAHAtrributedLabelreturnのデリゲート メソッドでNO

-(BOOL)attributedLabel:(OHAttributedLabel*)attributedLabel shouldFollowLink:(NSTextCheckingResult*)linkInfo{
    <Do your work here>
    return NO;
}

編集 私はあなたのコードを実行できませんでした。だから、私が使ったコードを投稿しています。

//forgotPasswordlabel is my OHAttributedLabel

self.forgotPasswordlabel.text = [[NSString localizedStringForKey:@"forgot_password"] uppercaseString];
self.forgotPasswordlabel.delegate = self;
    NSRegularExpression* userRegex = [NSRegularExpression regularExpressionWithPattern:[[NSString localizedStringForKey:@"forgot_password"] uppercaseString] options:0 error:nil];
    [userRegex enumerateMatchesInString:self.forgotPasswordlabel.text options:0 range:NSMakeRange(0,self.forgotPasswordlabel.text.length)
                             usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop)
     {
         // FORGOT_PASSWORD_URL is mu URL which I'm opening in my WebView
         [self.forgotPasswordlabel addCustomLink:[NSURL URLWithString:FORGOT_PASSWORD_URL] inRange:match.range]; // add it
     }];

そしてデリゲートメソッドで

-(BOOL)attributedLabel:(OHAttributedLabel*)attributedLabel shouldFollowLink:(NSTextCheckingResult*)linkInfo{
    [self forgetPassword:nil]; // here I handle password reset action
    return NO;
}

Heeは私のレーベルの外観ですここに画像の説明を入力

それが役に立てば幸い...

于 2012-12-05T17:19:05.230 に答える