ペーストボードの属性付きテキストから画像を削除する方法を教えてください。
例
NSAttributedString をサポートする UITextView があります。ユーザーが画像を含むペーストボードから何かを貼り付けることを許可すると (たとえば、Safari アプリの Web ページからコピーされた画像とテキストなど)、保存しようとするとアプリがクラッシュします。
*** 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!'
これは、イメージがソース コピーの一部である場合にのみ発生します。テストしたソース画像はjpgとpngであるため、なぜtiffを参照しているのかわかりません。
わずかに異なる目標の関連記事で説明されているように、クラッシュを回避するための私の回避策は、ペーストボードを通常の文字列に強制することです。
- (void)paste:(id)sender
{
UIPasteboard *pasteBoard = [UIPasteboard generalPasteboard];
NSString *string = pasteBoard.string;
[self insertText:string];
}
これにより、クラッシュは回避されますが、ユーザーが書式設定されたテキストを貼り付けることもできなくなります。メールアプリから来た可能性のある太字または斜体を言ってください。
私が知る限り、テキストの書式設定を保持できるように、ペーストボードから画像を削除する必要があります。ご協力いただきありがとうございます。