我有RTF文本,我在Mac上向用户显示。现在我需要替换一些文本。文本内嵌一些图像。当我执行以下代码时,图像会丢失。我正在使用c#,Mono和Monobjc在mac上运行它。
NSText _questionView;
// some initialisation code which I have skipped
//
NSRange range = NSRange.NSMakeRange(0, _questionView.TextStorage.Length);
NSData oldString = _questionView.RTFFromRange(range);
if (oldString != null)
{
string s = oldString.ConvertRTFToString();
_questionView.ReplaceCharactersInRangeWithRTF(range, s.ConvertToNSData());
_questionView.SelectedRange = NSRange.NSMakeRange(0,0);
// After this line the inline images are lost.
}
答案 0 :(得分:1)
您正在丢失图像,因为您要将RTF内容转换为NSString
。 NSString
只能携带文字,而不能携带属性。您应该考虑使用NSAttributedString代替文本操作,以保留RTF属性(样式,图像等)。