RTF中的图像在Mac上丢失

时间:2011-03-04 13:57:08

标签: objective-c mono monobjc

我有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.
}

1 个答案:

答案 0 :(得分:1)

您正在丢失图像,因为您要将RTF内容转换为NSStringNSString只能携带文字,而不能携带属性。您应该考虑使用NSAttributedString代替文本操作,以保留RTF属性(样式,图像等)。