Получить данные из NSTextView - PullRequest
0 голосов
/ 24 марта 2011

У меня есть редактируемый NSTextView, в котором пользователь будет писать, используя другой стиль шрифта, при определенных действиях мне нужно подготовить его HTML-формат, Может кто-нибудь предложить мне, как я могу получить данные из NSTextView, Я могу использовать

[[pInputText textStorage] words];

но возвращает NSArray, из которого я не могу получить NSMutableString,

Может ли кто-нибудь предложить мне наилучший из возможных способов получения строки / данных, которые пользователь печатал и в каком формате.

Ответы [ 3 ]

2 голосов
/ 25 марта 2011

Ниже решения работает для меня,

- (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 голос
/ 24 марта 2011

NSTextView наследуется от NSText, который имеет метод -string.Так что [pInputText string должен делать то, что вы хотите.

В качестве альтернативы, TextStorage является подклассом NSMutableAttributedString, поэтому, если вы хотите приписанную строку, вы можете просто использовать возврат [pInputText textStorage] напрямую.

0 голосов
/ 24 марта 2011

, поскольку NSTextStorage является подклассом NSMutableAttributedString, у которого есть метод через суперкласс NSAttributedString: initWithHTML: baseURL: documentAttributes , вы можете использовать это, чтобы получить то, что вы хотите. Атрибуты документа могут быть NULL.

...