0

テキストに URL が含まれている可能性のあるテキストをアプリに表示しようとしています。URL をハイパーリンクとして強調表示し、クリックできるようにします。さらに、クリックされたときに、カスタム アクションを実行できるコールバックを提供したいと考えています。もちろん、URL はコールバックに返される必要があるので、どうすればよいかがわかります (たとえば、アプリ内ブラウザーで開くなど)。

これは複雑に聞こえるかもしれませんが、基本的にアプリストアのすべての IM アプリ (30 以上) には、ユーザーが URL を含む IM を送信し、受信側がそれをクリックしてアプリ内ブラウザーでページを開くことができるこの機能があります。 .

これはどのように行われますか?私はそれを理解することはできません。解決策がある場合は、サンプル コードを提供してください。ありがとうございました。


ところで:

答えはUIWebView ではありません(複数のインスタンスをレンダリングするのが非常に遅いため)。

URLを解析することはできますが、クリック時にカスタムコールバックを設定できないため、答えもUITextViewではありません。そのため、サファリを開くだけです。

URL を解析してそれにカスタム アクションを割り当てることはできますが、URLMap で事前に割り当てる必要があるため、答えもTTStyledTextLabelではありません。そして明らかにこの場合、事前に URL が何であるかはわかりません。私の知る限り、すべての URL をカスタム アクションに割り当てることはできません。

代替テキスト http://img169.yfrog.com/img169/3373/picture1ufx.png

4

2 に答える 2

3

私の知る限り、すべてのURLをカスタムアクションに割り当てることはできません。

私はあなたの他のSOの質問であなたに指示を与えたので、それがこの正確な質問に答えたので、なぜあなたが私がリンクしたソースを読んでいないのかについて少し戸惑います。" "メソッドTTURLMapによるキャッチオールをサポートします。-from:toViewController:selector例えば:

[map from:@"*" toViewController:[ViewController class]
        selector:@selector(someHandler:)];

完全に文書化されていないライブラリを扱っていると混乱することは理解できますが、Three20ライブラリは、まさにあなたが求めていることを実行するサンプルアプリケーションを含めるという点で非常によく文書化されています。

于 2009-07-27T10:08:32.877 に答える
0

これは複雑に聞こえるかもしれませんが、基本的にアプリストアのすべての IM アプリ (30 以上) には、ユーザーが URL を含む IM を送信し、受信側がそれをクリックしてアプリ内ブラウザーでページを開くことができるこの機能があります。 .

ただし、必要なのはカスタム コールバックであるため、これは別の機能です。UITextViews を使用している可能性があります。

おそらく、テキスト レンダリングやリンク検出などのコードを自分で作成するか、TTStyledTextLabel を変更する必要があります (どちらの場合も、開始するのに適しているように見えます)。私は似たようなことをして、リンクの上に UIButtons を作成するだけです。リンク検出コードについては、Adium のソースを参照してください。

于 2009-07-26T23:02:30.213 に答える