将图像粘贴到UITextView会导致崩溃

Den*_*Vog 3 crash copy-paste paste uitextview ios

谁能告诉我如何避免因将图像粘贴到UITextView而导致崩溃?

我的应用程序中有UITextView,允许对属性文本进行一些基本编辑(iOS 6).用户发现他们可以从网页复制文本和图像的组合,然后切换到我的应用程序并使用UITextView菜单>粘贴命令它将使应用程序崩溃.我可以重现它,但我很难过该怎么做.崩溃的日志如下所示:

*** 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!'
Run Code Online (Sandbox Code Playgroud)

当他们在另一个应用程序中使用copy命令时,我无法阻止用户选择图像.我也不想在我的应用程序中禁止粘贴.

Den*_*Vog 5

这是一个可怕的黑客,但我确实找到了避免崩溃的方法.简而言之,我已经将UITextView子类化为覆盖粘贴命令,并将粘贴板转换为插入UITextView的字符串.

- (void)paste:(id)sender {    
    UIPasteboard *pasteBoard = [UIPasteboard generalPasteboard];
    NSString *string = pasteBoard.string;
    NSLog(@"Pasteboard string: %@", string);
//  [pasteBoard setValue:@"Please work you miserable bastard!" forPasteboardType:(NSString *)kUTTypeUTF8PlainText];
//  [super paste:sender]; // Doesn't work for unknown reason.
    [self insertText:string];
}
Run Code Online (Sandbox Code Playgroud)

Welome任何更好的建议......

  • 看起来不像是一个可怕的黑客.我认为将粘贴板转换为纯文本是正确的,如果这是您的应用程序支持的. (2认同)