2010-10-05 86 views

回答

14

你可以試試這個:

NSString *myText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; 
myTextView.text = myText; 
+0

謝謝你不行,請你看看編輯過的帖子? – 2010-10-05 16:54:00

+0

等一下,你的textView是什麼,你的文本是什麼,看起來你的變量名有問題。你可以從'[NSString stringWithContentsOfFile ...]''獲得後打印出NSString。我想看看結果 – vodkhang 2010-10-05 16:56:05

+0

myText是'UITextView'和'myTextView'只是一個名字,我的文件是一個UTF8編碼的txt文件。 – 2010-10-05 17:06:26

8

到目前爲止,你所做的事將讓你的文件的名稱,您需要進一步走一步,實際上讀取該文件的內容爲NSString,使用類似:

NSError *err = nil; 
NSString *fileContents = [NSString stringWithContentsOfFile:filePath 
          encoding:NSUTF8StringEncoding 
          error:&err]; 
if (fileContents == nil) { 
    NSLog("Error reading %@: %@", filePath, err); 
} else { 
    myTextView.text = fileContents; 
} 

這將工作爲純文本(假設您的文件是UTF8編碼);你必須爲RTF做更多的事情(UITextView不知道如何顯示RTF)。

+0

謝謝你不工作,你會看到編輯過的文章嗎? – 2010-10-05 17:00:56

+3

如果它不工作,也許你應該檢查錯誤狀態(而不是通過傳遞'nil'忽略它)。 – 2010-10-05 18:03:11

8
myTextView.attributedText = 
[ NSAttributedString.alloc 
    initWithFileURL:[ NSBundle.mainBundle URLForResource:@"filename" withExtension:@"rtf" ] 
    options:nil 
    documentAttributes:nil 
    error:nullptr 
]; 
+1

格式有點奇怪,但它適用於加載富文本文件並設置「UITextView」的'屬性文字'屬性。 – Dalmazio 2014-07-29 08:15:25

+0

這是行得通的,但作爲一個例子,它會促進不良行爲。使用點語法來調用'alloc'最多是令人困惑的,而最壞的情況是濫用點語法。不遵循標準多行參數對齊約定會導致難以閱讀。 – SwampThingTom 2015-08-20 23:47:44

+0

是否值得降低我的聲譽?你教條主義者。 – Satachito 2015-08-21 22:21:04

0
  1. 將您的TextView控件(我不得不點擊3次,直到它說NSTextView)到第一@interface線下面的AppDelegate.m文件。我的是@interface AppDelegate()。三次點擊的原因是因爲在默認情況下,當您在窗口上拖動TextView控件時,它會創建3個控件,它只是內部的,設置爲NSTextView的內部控件。其他控件處理滾動和屏幕裁剪。然後,選擇創建一個插座並將其命名爲txtRich或任何您想要的。這創造了這個條目我在我的情況:
@property (unsafe_unretained) IBOutlet NSTextView *txtRich;
  • 找到您要加載的RTFD一個類的方法。我在applicationDidFinishLaunching的AppDelegate.m中做過我的工作。這裏面,貼這樣的:
  • NSBundle *myBundle = [NSBundle mainBundle]; 
    NSString *sFile= [myBundle pathForResource:@"myrichfile" ofType:@"rtfd"]; 
    [self.txtRich readRTFDFromFile:sFile]; 
    

    你可能會想知道這mainBundle來自,如果你有什麼地方申報。答案是不。這是驚人的魔法,默認情況下創建,就像NSNotificationCenter defaultCenter變量。它指的是你自己的應用程序包。

    1. 現在,使用TextEdit創建一個文件myrichfile.rtfd。將它保存在你的項目文件夾中。將它拖到支持文件下的項目窗口中。當出現提示時,請使用默認值。這將它與您的項目捆綁在Resources文件夾中。
    相關問題