'iPhone'에 해당되는 글 1건

  1. 2010.06.22 UIPasteBoard 사용법

UIPasteBoard 사용법

iPhone Dev 2010.06.22 11:08

Copy & Paste 를 앱에서 직접 컨트롤 할 수 있도록 UIPasteBoard 를 사용하는법
by mattjdrake on October 26, 2009

사용자 삽입 이미지

드디어 최근 iPhone OS에서는 앱들 사이에서 데이터를 임의적인 복사 및 붙여넣기를 할 수 있게 되었습니다. 이제 어떻게 하는지 알아봅시다!




UIKit 에서의 Copy & Paste

아시다시피 UIKit 에서의 많은 컨트롤들은 이제 텍스트정보를 복사하고 붙여넣을 수 있도록 준비되어 있습니다. 단순 문자뿐만 아니라 다음과 같은 항목들에 대해서도 기능을 사용할 수 있습니다 : 이미지, SQLite DB, 텍스트정보, 파일. 만약 사용자로 하여금 통합된 기능의 명목으로 다양한 앱들사이에서 데이터를 공유하게끔 하고 싶다면 이 문서에서 설명하는 방법이 좋은 해결책이 될 수 있을것입니다.



…한마디 덧붙이자면 구현은 엄청 쉽습니다. 아래의 영상을 참조하세요:


UIPasteBoard 구현부

 


CopyFrom Source Code


-(IBAction)copyImageToPasteBoard{
 UIPasteboard *appPasteBoard = [UIPasteboard pasteboardWithName:@"CopyFrom" create:YES];
 appPasteBoard.persistent = YES;

 NSData *data = UIImagePNGRepresentation([UIImage imageNamed:@"Old-Time-Photo.jpg"]);
 [appPasteBoard setData:data forPasteboardType:@"com.appshop.copyfrom.imagedata"];
}

-(IBAction)copyStringToPasteBoard{
 UIPasteboard *appPasteBoard = [UIPasteboard pasteboardWithName:@"CopyFrom" create:YES];
 appPasteBoard.persistent = YES;
 [appPasteBoard setString:textView.text];
}




PasteTo Source Code

 
-(IBAction)pasteImageToPasteBoard{
 UIPasteboard *appPasteBoard = [UIPasteboard pasteboardWithName:@"CopyFrom" create:YES];
 NSData *data = [appPasteBoard dataForPasteboardType:@"com.appshop.copyfrom.imagedata"];
 imageView.image = [UIImage imageWithData:data];
}

-(IBAction)pasteStringToPasteBoard{
 UIPasteboard *appPasteBoard = [UIPasteboard pasteboardWithName:@"CopyFrom" create:YES];
 textView.text = [appPasteBoard string];
}
 




요약
UIPasteBoard를 아이폰 프로그래밍상에서 사용한다는 건 보시다시피 정말 쉬울 뿐만 아니라 얼마 전 까지만 해도 하지 못했던 사항들에 대해 구현 가능한 가능성을 열어줍니다. UIPasteBoard를 사용하기 위해서는 그냥 pasteboardWithName을 써서 객체를 생성하고 뭔가의 내용을 붙여 넣은 다음에 persistent 속성을 YES 로 맞춰주면 끝납니다. 그러고 나서는 그 어떤 어플에서도 그 안에 저장된 데이터를 참조할 수 있게 됩니다. 간단한 문자열뿐만 아니라 SQLite DB 같은 NSData 형식도 적용될 수 있습니다.




원문 : http://howtomakeiphoneapps.com/2009/10/how-to-use-uipasteboard-to-implement-custom-copy-and-paste-in-your-app/

Trackback 0 : Comment 0