2011-03-04 44 views
1

我有我在Mac上向用户展示的RTF文本。现在我需要替换一些文本。文本内嵌了一些图像。当我执行下面的代码时,图像会迷路。我正在使用C#,Mono和Monobjc在Mac上运行它。RTF中的图像迷失在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

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