代码之家  ›  专栏  ›  技术社区  ›  justadreamer

如何创建一个基于uitextview的控制器来显示HTML内容

  •  1
  • justadreamer  · 技术社区  · 14 年前

    我正在开发一个电子邮件发送应用程序,它通过自定义API发送消息。问题是,uitextview不允许显示HTML内容,为了正确地转发/答复消息,有时需要编辑来自以前消息的HTML内容。然而,在iPhone上的标准mail.app中,uitextview或他们在其中使用的任何东西都能完美地显示彩色文本和链接。我的问题是:是否有任何现成的/半现成的组件可以重新创建这种行为,或者至少对如何做到这一点的方法有任何意见。谢谢您。

    编辑:mfmailcomposeviewController不适合应用程序的用途,因为它不允许控制其行为,也不允许通过自定义API发送消息。 我现在使用的是three20中的ttmessagecontroller,它允许自定义大多数内容,除了-消息正文文本视图只是uitextview-我不能在其中放置任何HTML内容。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Ben Zotto sberry    14 年前

    Three20的消息控制器是最接近于相似组合视图的。

    除此之外,实际上还有两个问题:自动检测文本中的“实时”内容(链接、电话号码等),并将其呈现为任意HTML的文本视图。

    对于前者, UITextView 有一个 dataDetectorTypes 它的属性。如果设置得当,应该可以自动检测链接、电话号码等。

    但这并不能让你得到后者。我知道将HTML转换为 NSAttributedString 比如说,这就是我对接近它的想法,以及一个完全酷的项目。也许其他人有这方面的资源。

        2
  •  0
  •   Aloha Silver    14 年前

    该接口已准备好供您使用。您可以将其用作模式视图,如下所示:

    - (void)replyAction
    {
        MFMailComposeViewController* mailController = [[MFMailComposeViewController alloc] init];
        mailController = self;
        [self presentModalViewController:mailController animated:YES];
        [mailController release];
    }
    

    您还需要在头文件中导入messageui:

    #import "MessageUI/MessageUI.h"
    

    设置继承:

    YourClass <MFMailComposeViewControllerDelegate>
    

    并将messageui框架添加到项目中。为此,右键单击任意组(如资源组),然后选择“添加”->“现有框架”…然后,查找messageui.framework。加上它,你就完成了。

    不要忘了检查官方文档,以获得可以为mfmailcomposeviewController设置的许多其他选项。