0

テキストエディタで作業していますが、RTFDサポートを追加したいと思います。RTFDファイルタイプをInfo.plistに追加した後、「アプリケーションがファイルパッケージを処理するには、readFromFileWrapper:ofType:error:をオーバーライドする必要があります」というメッセージが表示されました。

ドキュメントを見て回ったところ、いくつかのことがわかりましたが、すべてを行うことができませんでした。誰かがとても親切で私を助けてくれませんか?

- (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper ofType:(NSString *)typeName error:(NSError **)outError {

    if ([typeName isEqualToString:@"Rich Text with Attachments"])  {   
        NSLog(@"Its RTFD");
        //it gets to here but I don't know how to load the rtfd data then :(
}

ofType:typeName]    return YES; }

どんな助けでも感謝されます:)

4

2 に答える 2

0

幸いなことに、RTFDは特に簡単です。readRTFDFromFile:のとwriteRTFDToFile:atomically:メソッドを確認してくださいNSText

NSTextクラスリファレンスから:

readRTFDFromFile:

パスでRTFDファイルの読み取りを試みYES、成功した場合と失敗した場合に戻りますNO

- (BOOL)readRTFDFromFile:(NSString *)path

ディスカッション
パスは、ファイルラッパー内のRTFファイルではなく、.rtfファイルまたはファイルラッパーのパスである必要があります。.rtfd.rtfd

から来ている場合はNSURL、次のようにします。

[textView readRTFDFromFile:[[self fileURL] path]];

安全のため、[[self url] isFileURL]最初に電話してください。

于 2010-02-15T18:30:54.650 に答える
-1

私はあなたのスニペットを試し、次のことを達成しました:

NSDocumentウィンドウが開き、タイトルがRTFDファイルの名前に更新されましたが、NSTextViewはまだ空白です。

NSDocumentインスタンスからURLを取得し、それをNSStringに変換してテキストビューに送信したので、コードがそれを開くとかなり確信していました...

if ([typeName isEqualToString:@"Rich Text with Attachments"]) {
        NSString *urlString = [[self fileURL] absoluteString];
        NSLog(@"%@",urlString);
        [textView readRTFDFromFile:urlString];

        return YES;
    }

ログはこれを返しました:

file://localhost/Users/David/Documents/Coursework/Geography%20Coursework.rtfd/

だからそれはうまくいくはずですか?

于 2010-02-16T12:34:18.543 に答える