Как я могу создать контроллер на основе UITextView для отображения содержимого HTML - PullRequest
1 голос
/ 03 сентября 2010

Я пытаюсь разработать приложение для отправки электронной почты, которое отправляет сообщения через пользовательский API. Проблема в том, что UITextView не позволяет отображать html-контент, и для правильной переадресации / ответа на сообщения иногда требуется редактировать html-контент, полученный из предыдущего сообщения. Однако в стандартном Mail.app на iPhone UITextView или все, что там используется, прекрасно отображает цветной текст и ссылки. Мой вопрос: есть ли готовый / полуготовый компонент для воссоздания такого поведения, или, по крайней мере, какое-либо мнение о подходе, как это было бы здорово. Спасибо.

РЕДАКТИРОВАТЬ: MFMailComposeViewController не соответствует цели приложения, поскольку он не позволяет контролировать его поведение и не позволяет отправлять сообщения через пользовательский API. TTMessageController от Three20 - это то, что я сейчас использую, оно позволяет настраивать большинство вещей, за исключением - представление основного текста сообщения - просто UITextView - и я не могу поместить туда html-контент.

Ответы [ 2 ]

1 голос
/ 03 сентября 2010

Контроллер сообщений Three20 - самый близкий к тому, что вы получите, чтобы получить похожее представление.

Кроме того, у вас на самом деле есть две проблемы: автоопределение «живого» контента (ссылок, телефонных номеров и т. Д.) В тексте и отображение в текстовом представлении произвольного HTML.

Для первых UITextView имеет свойство dataDetectorTypes. Если вы установите это соответствующим образом, вы должны получить автоматическое определение ссылок, телефонных номеров и т. Д.

Однако это не поможет вам. Я не знаю тривиального способа преобразования HTML в NSAttributedString, скажем так, как я мог бы подумать о приближении к нему, и абсолютно крутого проекта для кого-то. Может быть, у кого-то есть ресурс по этому вопросу.

0 голосов
/ 03 сентября 2010

Этот интерфейс готов к использованию. Вы можете использовать его как модальный вид, например:

- (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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...