2010-02-23 12 views

답변

6

보기/컨트롤에서 paste:을 덮어 씁니다 (붙여 넣기 : UIResponderStandardEditActions 비공식 프로토콜의 일부 임). 간단한, 당신은이 작업을 수행 할 것 :

- (void)paste:(id)sender 
{ 
    UIPasteboard* pasteboard = [UIPasteboard generalPasteboard]; 
    NSString* rawString = pasteboard.string; 
    NSString* formattedString = // do something fun with rawString here 
    pasteboard.string = formattedString; 
    [super paste:sender]; 
} 

이있는 경우에 당신이 전화를 안하면 (애니메이션 스마일 또는 무언가를 삽입하는 등의) 문자열과 함께 정말 멋진 일을 할 필요가 없습니다 가정한다 super하지만 직접 삽입하십시오 (UITextView에서이 작업을 수행하는 경우 selectedRange 속성을 사용하여 올바르게 삽입 할 수 있음).

편집 : NSPasteBoard에서 데이터를 가져 오려면 –stringForType: 또는 several other data access methods 중 하나를 사용해야합니다. 붙여 넣을 수있는 문자열인지 확인하기 위해 문자열/데이터의 유효성을 검사해야 할 수도 있습니다.

당신은 아마 super를 호출하지만, 당신이를 NSTextView에이 일을하는 경우

[self insertText:formattedString]; 

을 사용할 수 없습니다. 다른 수업을 듣고 있다면 그 상황에서 무엇이 적절한 지 알아 내야합니다.

+0

완벽한, 감사합니다! – christo16

+0

나는이 게시물을 iPhone으로 태그했다고 생각하지만, NSPasteBoard, 특히 [super paste : sender] 부분의 구현이 더 필요합니다. – christo16

+0

@haroldthehungry 편집을 참조하십시오. – Felixyz