[Cocoa] 클립보드에 문자열을 복사하는 법

복사/붙여넣기 관련해서 자세한 내용을 몇 개의 포스팅으로 정리한 바 있는데, 이 글이 워낙 예전 글이라 일부 내용을 수정합니다. (2019.01.24)


페이스트보드에 문자열을 복사하는 법

  1. 페이스트보드를 만든다.
  2. 페이스트보드의 내용을 지운다.
  3. 페이스트보드의 타입을 선언해준다.
  4. 페이스트보드에 문자열을 쓴다.

아래는 예제 코드( Xcode 9 이상). 기본적인 Foundation 타입들은 모두 페이스트 보드에 복사(쓰기)가 가능한 타입으로 준비되어 있다.

NSPasteboard *pboard = [NSPasteboard generalPasteboard];
[pboard clearContents];
[pboard setString: stringToBeCopied forType: NSPasteboardTypeString]; 
// 혹은
[pboard writeObjects:@[stringToBeCopied]];

Swift에서는 모든 기본 타입값들을 Object로 간주한다.

let pboard = NSPasteboard.general
pboard.clearContents()
pboard.writeObeject(["hello"])

아래는 앨캐피탄 이전의 API인데, 그냥 기록차원에만 남겨둔다.

-(void) copyStringIntoPboard: (NSString *)stringToBeCopied {
  NSPasteboard *pboard = [NSPasteboard generalPasteboard];
  [pboard clearContents];
  [pboard declareTypes: @[NSStringPboardType] owner: self];
  [pboard setString: stringToBeCopied forType: NSStringPboardTypeString];
}

자세한 내용은 Pasteboard Programming Guide를 참고