您好我想知道如何将rtf或文本文件加载到UITextView中我使用了几个代码但是没有用,
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"txt"];
myTextView.text = filePath;
谢谢。
答案 0 :(得分:14)
你可以试试这个:
NSString *myText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
myTextView.text = myText;
答案 1 :(得分:9)
myTextView.attributedText =
[ NSAttributedString.alloc
initWithFileURL:[ NSBundle.mainBundle URLForResource:@"filename" withExtension:@"rtf" ]
options:nil
documentAttributes:nil
error:nullptr
];
答案 2 :(得分: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)。
答案 3 :(得分:0)
@interface
行下面的AppDelegate.m文件中。我是@interface AppDelegate ()
。三次单击的原因是默认情况下,当您在窗口上拖动TextView控件时,它会创建3个控件,并且它只是设置为NSTextView的内部,内部控件。其他控件处理滚动和屏幕剪辑。然后,选择创建一个插座并将其命名为txtRich
或任何您想要的名称。在我的案例中,这为我创建了这个条目:@property (unsafe_unretained) IBOutlet NSTextView *txtRich;
applicationDidFinishLaunching
下的AppDelegate.m中做了我的。在里面,贴上这样的东西:NSBundle *myBundle = [NSBundle mainBundle];
NSString *sFile= [myBundle pathForResource:@"myrichfile" ofType:@"rtfd"];
[self.txtRich readRTFDFromFile:sFile];
您可能想知道这个mainBundle
来自何处,以及您是否必须在某处声明它。答案是不。它是一种疯狂的魔法,默认创建,就像NSNotificationCenter defaultCenter
变量一样。它指的是您自己的应用程序包。