从NSTextView检索数据

时间:2011-03-24 11:59:12

标签: cocoa nstextview

我有一个可编辑的NSTextView,其中用户将使用不同的字体样式编写,在某些操作上我需要准备HTML Formate, 任何人都可以建议我,我如何从NSTextView检索数据, 我可以使用

[[pInputText textStorage] words];

但它返回NSArray,我无法从中获取NSMutableString,

任何人都可以建议我以最佳方式检索用户输入的字符串/数据以及格式。

3 个答案:

答案 0 :(得分:2)

以下解决方案适用于我,

- (NSString *)convertUnderlineTextToHTML:(NSAttributedString *)_mString 
{ 

    NSArray * exclude = [NSArray arrayWithObjects:@"doctype", @"html", 
                         @"head", @"body",@"xml",nil];

    NSDictionary * htmlAtt = [NSDictionary 
                              dictionaryWithObjectsAndKeys:NSHTMLTextDocumentType,NSDocumentTypeDocumentAttribute,exclude,NSExcludedElementsDocumentAttribute,nil];

    NSError * error; 

    NSData * htmlData = [_mString dataFromRange:NSMakeRange(0, [_mString 
                                                                length]) documentAttributes:htmlAtt error:&error];


    NSString * sdat = [[NSString alloc] initWithData:htmlData 
                                            encoding:NSUTF8StringEncoding];

    NSLog(sdat);

    return sdat;
} 

_mString是

NSMutableAttributedString *pAttributedString = [pInputText textStorage];

NSString *pHtml  = [self convertUnderlineTextToHTML:pAttributedString];

此致 罗汉

答案 1 :(得分:1)

NSTextView继承自NSText,其-string方法。所以[pInputText string应该做你想做的事。

或者,TextStorageNSMutableAttributedString的子类,因此如果您想要一个属性字符串,则可以直接使用[pInputText textStorage]的返回值。

答案 2 :(得分:0)

由于NSTextStorageNSMutableAttributedString的子类,它通过其超类NSAttributedString initWithHTML:baseURL:documentAttributes有一个方法,因此您可以使用它来获得您想要的内容。 documentAttributes可以是NULL