负载RTF或文本文件导入UITextView的iPhone SDK的
嗨,我不知道我应该怎么加载RTF或文本文件导入的UITextView我使用一些代码,但我以前不工作,负载RTF或文本文件导入UITextView的iPhone SDK的
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"txt"];
myTextView.text = filePath;
谢谢。
你可以试试这个:
NSString *myText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
myTextView.text = myText;
到目前为止,你所做的事将让你的文件的名称,您需要进一步走一步,实际上读取该文件的内容为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)。
谢谢你不工作,你会看到编辑过的文章吗? – 2010-10-05 17:00:56
如果它不工作,也许你应该检查错误状态(而不是通过传递'nil'忽略它)。 – 2010-10-05 18:03:11
myTextView.attributedText =
[ NSAttributedString.alloc
initWithFileURL:[ NSBundle.mainBundle URLForResource:@"filename" withExtension:@"rtf" ]
options:nil
documentAttributes:nil
error:nullptr
];
格式有点奇怪,但它适用于加载富文本文件并设置“UITextView”的'属性文字'属性。 – Dalmazio 2014-07-29 08:15:25
这是行得通的,但作为一个例子,它会促进不良行为。使用点语法来调用'alloc'最多是令人困惑的,而最坏的情况是滥用点语法。不遵循标准多行参数对齐约定会导致难以阅读。 – SwampThingTom 2015-08-20 23:47:44
是否值得降低我的声誉?你教条主义者。 – Satachito 2015-08-21 22:21:04
- 将您的TextView控件(我不得不点击3次,直到它说NSTextView)到第一
@interface
线下面的AppDelegate.m文件。我的是@interface AppDelegate()
。三次点击的原因是因为在默认情况下,当您在窗口上拖动TextView控件时,它会创建3个控件,它只是内部的,设置为NSTextView的内部控件。其他控件处理滚动和屏幕裁剪。然后,选择创建一个插座并将其命名为txtRich
或任何您想要的。这创造了这个条目我在我的情况:
@property (unsafe_unretained) IBOutlet NSTextView *txtRich;
- 找到您要加载的RTFD一个类的方法。我在
applicationDidFinishLaunching
的AppDelegate.m中做过我的工作。这里面,贴这样的: - 现在,使用TextEdit创建一个文件myrichfile.rtfd。将它保存在你的项目文件夹中。将它拖到支持文件下的项目窗口中。当出现提示时,请使用默认值。这将它与您的项目捆绑在Resources文件夹中。
NSBundle *myBundle = [NSBundle mainBundle];
NSString *sFile= [myBundle pathForResource:@"myrichfile" ofType:@"rtfd"];
[self.txtRich readRTFDFromFile:sFile];
你可能会想知道这mainBundle
来自,如果你有什么地方申报。答案是不。这是惊人的魔法,默认情况下创建,就像NSNotificationCenter defaultCenter
变量。它指的是你自己的应用程序包。
谢谢你不行,请你看看编辑过的帖子? – 2010-10-05 16:54:00
等一下,你的textView是什么,你的文本是什么,看起来你的变量名有问题。你可以从'[NSString stringWithContentsOfFile ...]''获得后打印出NSString。我想看看结果 – vodkhang 2010-10-05 16:56:05
myText是'UITextView'和'myTextView'只是一个名字,我的文件是一个UTF8编码的txt文件。 – 2010-10-05 17:06:26