2

有人可以指导我如何从粘贴板上的属性文本中删除图像吗?

例子

我有一个支持 NSAttributedString 的 UITextView。如果我允许用​​户从粘贴板上粘贴包含图像的内容(比如从 Safari 应用程序的网页复制的图片和一些文本),当我尝试保存它时,它会使我的应用程序崩溃:

*** Assertion failure in -[NSHTMLReader _addAttachmentForElement:URL:needsParagraph:usePlaceholder:], /SourceCache/UIFoundation_Sim/UIFoundation-78/UIFoundation/TextSystem/NSHTMLReader.m:1478
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to find missing_image.tiff!'

仅当图像是源副本的一部分时才会发生这种情况。为什么它指的是 tiff 我不知道,因为我一直在测试的源图像是 jpg 和 png。

相关帖子中所述,目标略有不同,我避免崩溃的解决方法是将粘贴板强制为常规字符串:

- (void)paste:(id)sender
{
    UIPasteboard *pasteBoard = [UIPasteboard generalPasteboard];
    NSString *string = pasteBoard.string;
    [self insertText:string];
}

这确实可以防止崩溃,但也可以防止用户粘贴任何格式化的文本。说出可能来自邮件应用程序的粗体或斜体。

所以我能说得最好,我需要从粘贴板上删除任何图像,以便保留文本格式。谢谢你的帮助。

4

0 回答 0