代码之家  ›  专栏  ›  技术社区  ›  iOS.Lover

将rtf或文本文件加载到UITextView iphone sdk中

  •  9
  • iOS.Lover  · 技术社区  · 15 年前

    嗨,我想知道我应该如何将rtf或文本文件加载到UITextView中,我使用了几个代码,但都不起作用,

    NSString* filePath = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"txt"];
    myTextView.text = filePath;
    

    谢谢您。

    4 回复  |  直到 15 年前
        1
  •  15
  •   vodkhang    15 年前

    NSString *myText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
    myTextView.text  = myText;
    
        2
  •  9
  •   Satachito    11 年前
    myTextView.attributedText =
    [   NSAttributedString.alloc
        initWithFileURL:[ NSBundle.mainBundle URLForResource:@"filename" withExtension:@"rtf"  ]
        options:nil
        documentAttributes:nil
        error:nullptr
    ];
    
        3
  •  8
  •   David Gelhar    15 年前

    到目前为止,您所做的将得到文件的名称,您需要更进一步,并实际将文件的内容读入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)。

        4
  •  0
  •   Volomike nbk    10 年前
    1. @interface 行。我的是 @interface AppDelegate () txtRich 或者你想要什么。这为我的案例创建了这个条目:
    @property (unsafe_unretained) IBOutlet NSTextView *txtRich;
    1. applicationDidFinishLaunching . 在里面,粘贴如下内容:
    NSBundle *myBundle = [NSBundle mainBundle];
    NSString *sFile= [myBundle pathForResource:@"myrichfile" ofType:@"rtfd"];
    [self.txtRich readRTFDFromFile:sFile];
    

    mainBundle 如果你必须在某处申报的话。答案是否定的。这是不可思议的魔法,默认情况下创建的,就像NSNotificationCenter defaultCenter 变量。它指的是您自己的应用程序包。

    1. 现在,使用TextEdit创建一个文件肉豆蔻. 将其保存在项目文件夹中。将其拖到支持文件下的项目窗口。当系统提示时,使用默认值。这将它与您的项目捆绑在一个资源文件夹中。