2012-11-09 2 views
3

누구나 이미지를 UITextView에 붙여 넣어 충돌을 피할 수있는 방법을 알려 줄 수 있습니까?이미지를 UITextView에 붙여 넣으면 충돌이 발생합니다.

내 앱에서 속성이 지정된 텍스트 (iOS 6)의 기본 편집을 허용하는 UITextView가 있습니다. 사용자가 웹 페이지에서 텍스트와 이미지의 조합을 복사 한 다음 내 앱으로 전환하고 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!' 

사용자가 다른 앱에서 복사 명령을 사용할 때 사용자가 이미지를 선택할 수 없도록 할 수 없습니다. 나는 또한 내 애플 리케이션 내에서 붙여 넣기를 금지하고 싶지 않아요.

답변

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]; 
} 

오신 것을 더 좋은 제안 ...

+2

끔찍한 해킹처럼 보이지 않습니다. 그것이 응용 프로그램이 지원하는 것이라면 페이스트 보드를 일반 텍스트로 변환하는 것이 적절하다고 생각합니다. – Rivera

+1

나는 주석 처리 된 섹션 때문에 주로 투표했습니다. – Jbryson

+0

작동하지 않습니다. 비슷한 질문에 대한 답변을 확인하십시오. http://stackoverflow.com/a/35464829/1630623 –

관련 문제