2010-09-03 48 views
1

我正在嘗試開發一個通過自定義API發送消息的電子郵件發送應用程序。問題是UITextView不允許顯示html內容,並且爲了正確地轉發/回覆消息,有時需要編輯來自先前消息的html內容。然而,在iPhone上的標準Mail.app中,UITextView或其中使用的任何內容都可以完美地顯示彩色文本和鏈接。我的問題是:是否有任何準備好/半準備好的組件來重現此行爲,或者至少有任何關於如何做到這一點的方法的意見會很棒。謝謝。如何創建基於UITextView的控制器來顯示html內容

編輯:MFMailComposeViewController不適合應用的目的,因爲它不允許控制其行爲,並且不允許通過自定義API發送消息。 Three20中的TTMessageController是我現在使用的,它允許定製大多數東西,除了 - 消息正文文本視圖只是UITextView - 並且我不能在其中放置任何html內容。

+0

我建議你將你的問題的標題編輯爲更像「我如何創建處理HTML內容的文本視圖?」因爲這真是你問題的關鍵 - 你已經用Three20解決了郵件編輯器的問題。 – 2010-09-03 16:36:03

+0

OK,好的建議,謝謝你,我將其重命名爲 – justadreamer 2010-09-03 16:45:22

回答

1

Three20的消息控制器是最接近你將看到一個lookalike撰寫視圖。

除此之外,你實際上有兩個問題:在文字「直播」的內容(鏈接,電話號碼等)自動檢測,並繪製成任意HTML的文本視圖。

對於前者,UITextView上有一個dataDetectorTypes屬性。如果設置得當,你應該得到自動檢測鏈接,電話號碼等

然而,這並不讓你後者。我知道將HTML轉換爲NSAttributedString並不是一件簡單的事情,比如說,我將會考慮如何處理它,以及一個非常酷的項目。也許別人有這方面的資源。

0

該接口已準備好供您使用。你可以使用它作爲一個模式視圖,就像這樣:

- (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設置其它選項。

+0

偉大的答案,但MFMailComposeViewController不允許通過自定義的API來發送郵件+還有更多的東西,我需要的視圖中的控制,因此MFMailComposeViewController就是不好足以作爲解決方案。謝謝你的試用:) – justadreamer 2010-09-03 16:12:46

+0

對不起,不明白你一開始需要更多的控制權。由於我無法評論其他答案,我只想添加quixoto的一個,如果我沒有弄錯,NSAttributedString是在iOS 4上引入的。因此,它可能會限制您的項目。但似乎是這樣做的方式。 – 2010-09-03 16:58:49