61

UITextView オブジェクトがあります。UIView のテキストには、電話番号、メール リンク、Web サイト リンクがあります。次の機能を備えたリンクとして表示したいと思います。

誰かが URL をタップすると、Safari がその Web サイトを開くはずです。誰かが電子メールのリンクをタップすると - メールが開き、宛先フィールドに私のアドレスが表示されます誰かが電話番号をタップすると - 電話アプリケーションが番号を呼び出す必要があります

誰かがこれを以前にやったことがありますか、それを処理する方法を知っていますか?

ありがとう、AJ

4

8 に答える 8

108

OS3.0をお使いの場合

次のようにできます

textview.editable = NO;
textview.dataDetectorTypes = UIDataDetectorTypeAll;
于 2009-08-09T16:47:23.627 に答える
18

電子メール アドレスの検出に関する注意: 電子メール リンクでメッセージ作成画面を開くには、メール アプリをインストールする必要があります (iOS シミュレーターにはインストールされていません)。

于 2011-11-18T18:24:51.950 に答える
1

ステップ 1. UITextview のサブクラスを作成し、canBecomeFirstResponder関数をオーバーライドする

KDTextView.h コード:

@interface KDTextView : UITextView

@end

KDTextView.m コード:

#import "KDTextView.h"

// Textview to disable the selection options

@implementation KDTextView

- (BOOL)canBecomeFirstResponder {
    return NO;
}

@end

ステップ 2. サブクラス KDTextView を使用して Textview を作成する

KDTextView*_textView = [[KDTextView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    [_textView setScrollEnabled:false];
    [_textView setEditable:false];
    _textView.delegate = self;
    [_textView setDataDetectorTypes:UIDataDetectorTypeAll];
    _textView.selectable = YES;
    _textView.delaysContentTouches = NO;
    _textView.userInteractionEnabled = YES;
    [self.view addSubview:_textView];

ステップ 3: デリゲート メソッドを実装する

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange
{
    return true;
}
于 2016-06-10T09:50:53.937 に答える
0

興味があります。表示されるテキストを制御できますか?もしそうなら、あなたはおそらくそれをUIWebViewに貼り付けて、そこにいくつかのリンクを投げて「正しい方法」でそれを行うべきです。

于 2009-06-15T13:47:12.210 に答える