클립보드에서 이미지 가져오기

SteadySlower·2022년 7월 12일
0

구현할 기능

일본어 문장을 타이핑 하라고???!!!

제가 만들고자 하는 앱은 단어장이지만 좀 더 긴 문장을 다룰 수도 있어야 했습니다. 하지만 일본어를 처음 공부하는 입장에서 일본어 단어도 아니고 문장을 타이핑한다는 것은 거의 불가능에 가까운 영역이었습니다.

그냥 이미지로 저장하자

따라서 좀 긴 문장을 저장할 때는 글이 아니라 캡쳐한 이미지로 저장할 수 있도록 만들기로 했습니다.

클립보드에 이미지를 복사한 이후에 이미지 버튼을 클릭하면 저장할 이미지를 볼 수 있습니다.

NSPasteBoard

MacOS에서 사용하는 클립보드 객체는 NSPasteBoard라는 이름을 가지고 있습니다. OS의 NSPasteBoard 객체를 가져온 이후에 NSPasteBoard에서 가져올 데이터의 타입을 명시합니다. (tiff는 Tag Image File Format의 준말로 이미지 포맷의 일종입니다.) 그리고 나서 pasteboard에서 이미지 데이터를 Data 타입으로 가져와서 NSImage로 반환하면 됩니다.

이렇게 반환한 이미지를 사용하면 View에서 클립보드에서 가져온 이미지를 사용할 수 있습니다.

func getImageFromPasteBoard() -> NSImage? {
    let pb = NSPasteboard.general
    let type = NSPasteboard.PasteboardType.tiff
    guard let imgData = pb.data(forType: type) else { return nil }
   
    return NSImage(data: imgData)
}
profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글