从 NSTextView 检索数据

发布于 2024-10-26 07:40:23 字数 251 浏览 6 评论 0原文

我有一个可编辑的 NSTextView,用户将在其中使用不同的字体样式进行编写,在某些操作中我需要准备它的 HTML 格式, 谁能建议我,如何从 NSTextView 检索数据, 我可以使用,

[[pInputText textStorage] words];

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

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

I have an Editable NSTextView,In which user will write using different font style, on certain action i need to prepare the HTML Formate of it,
Can anyone suggest me, how i can retrieve the data from NSTextView,
I am able to use

[[pInputText textStorage] words];

but it returns NSArray, from which i am not able to get NSMutableString,

Can anyone suggest me the best possible way to retrieve the String/data what user typed and in which format.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独享拥抱 2024-11-02 07:40:23

以下解决方案对我有用,

- (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];

问候
罗汉

Below solutions works for me,

- (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;
} 

Where _mString is

NSMutableAttributedString *pAttributedString = [pInputText textStorage];

NSString *pHtml  = [self convertUnderlineTextToHTML:pAttributedString];

Regards
Rohan

醉南桥 2024-11-02 07:40:23

NSTextView 继承自 NSText,它有一个 -string 方法。所以 [pInputText string 应该做你想要的。

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

NSTextView inherits from NSText, which has a -string method. So [pInputText string should do what you want.

Alternately, TextStorage is a subclass of NSMutableAttributedString, so if you want an attributed string you can just use the return of [pInputText textStorage] directly.

笑饮青盏花 2024-11-02 07:40:23

因为 NSTextStorageNSMutableAttributedString 的子类,它通过其超类 NSAttributedString 拥有一个方法:initWithHTML:baseURL:documentAttributes,你可以用它来得到你想要的。 documentAttributes 可以为NULL

since NSTextStorage is a subclass of NSMutableAttributedString which has a method through its superclass NSAttributedString :initWithHTML:baseURL:documentAttributes, you can use this to get what you want. documentAttributes can be NULL.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文