ユーザーがUITextViewのハイパーリンクをタップしたときに呼び出されるUIApplication.openURLをサブクラス化する方法を示す場所をいくつか見つけました。ただし、mailtoリンクをタップしたときにこれが呼び出されないことがわかりました。必要なのは、mailtoリンクをオーバーライドすることだけです。私のアプリにはメールクライアントが含まれていますが、Appleは私のアプリを「デフォルト」のメールクライアントにすることを許可しないので、少なくとも自分のプログラム内のmailtoリンクが私のアプリを使用してメールを送信することを望んでいます。
代わりに最初にUIWebViewを使用してみましたが、これは可能でしたが、表示に問題がありました(プレーンテキストを表示しているだけで、UITextViewほど見栄えがよくありません)。
UIApplication.canShowURLもオーバーライドしようとしましたが、http:リンクの場合でも呼び出されません。サブクラス化と「Swizzling」を試しましたが、どちらも同じ結果になります。