AppKit

2020년 6월 11일 수정

≡ 목차 (Table of Contents)

AppKitmacOS용 앱 UI 프레임워크 이름이다. Cocoa Framework의 실질적인 프레임워크 이름이기도 하다. 실질적으로 코코아 기반 앱을 제작할 때 임포트해야 하는 모듈 이름이다.

import AppKit

특징적으로 NeXTSTEP에서 발전해 온 관계로 클래스 이름 앞에 NS prefix가 붙어있다. 예를 들어 뷰 클래스는 NSView 와 같은 이름을 가진다.

Cocoa Touch와 혼동하지 말자. Cocoa Touch은 iOS용 프레임워크이고 실질적인 이름으로 UIKit과 관련이 있다.

NSView 화면을 PNG로 캡처하기

아래의 코드로 특정 NSView 화면을 캡처해서 PNG 데이터로 얻을 수 있다.

func captureView(view: NSView) -> Data? {
  let rep = view.bitmapImageRepForCachingDisplay(in: view.bounds)!
  view.cacheDisplay(in: view.bounds, to: rep)
  return rep.representation(using: .png, properties: [:])
}

결과물을 NSImage 로 가공하고 싶다면 딱 적당한 생성자가 있다.

let image = NSImage(data: data)

결과물을 파일로 저장하고 싶다면 Data 에서 제공하는 API를 활용하자.

try! data?.write(to: fileURL)