본문 바로가기

Programming

Quick Look Plug-In 만들기

유용한 기능인 Quick Look(훑어보기) 의 Plug-In을 만들어 보자.


Xcode에서 새로운 프로젝트를 만들때, 다음과 같이 Quick Look Plug-In을 선택하자.


적당히 이름을 정하고, 생성!


테스트로 만들어볼 플러그인은 tgz파일의 내용을 미리 볼 수 있는 플러그인이다.

먼저, 타겟이 되는 파일의 형식을 지정하자.

Supporting Files 디렉토리의 Info.plist 파일을 수정해야한다.


Information Property List -> Document types -> Item 0 안의 

Document Content Type UTIs의 값이 파일의 형식을 나타내는데,

이를 UTI 형식으로 넣어야 한다.



파일의 UTI 형식을 알아내는 방법은 다음과 같다.

mdls -name kMDItemContentType [filename]

이렇게 알아낸 UTI를 아까 Item 0의 값으로 설정하자.


그 다음 파일을 Preview할 때의 동작을 지정 해 줘야 한다.

해당 코드는 GeneratePreviewForURL.c 파일에 있는

GeneratePreviewForURL라는 이름의 함수이다.

함수는 다음과 같이 작성하였다.

QLPreviewRequestSetDataRepresentation 함수가 CFDataRef 형식의 자료를 화면에 뿌려주는 기능을 한다.

따라서 원하는 문자열을 생성한 뒤에, CFDataRef 형식으로 변환하였고,

QLPreviewRequestSetDataRepresentation 함수의 인자로 넣어주었다.

간단한 기능 구현은 끝이 났다. 


Run 버튼을 누르면, Build가 되지만, 실제 실행은 되지 않는다.

Build가 완료되면 Products 디렉토리에 tgz.qlgenerator 라는 플러그인이 생성된다.

이 플러그인을 ~/Library/QuickLook디렉토리에 넣어주면, 플러그인이 적용된다.


여기까지가 간단한 Quick Look Plug-In을 개발하는 방법이다.






하지만 개발자 입장에선, 컴파일 하고 파일을 옮기고 테스트하는 작업이 불편하다.

따라서, 이 작업을 자동화 해 보자.

다음과 같이 프로젝트 설정에서

Build Phases를 선택하고 New Copy Files Phase를 추가하자.

추가된 Copy Files를 다음과 같이 설정한다.

(당연하겠지만, Path 는 자신의 자신의 홈디렉토리/Library/QuickLook으로)


Product 메뉴의 Scheme -> Edit Scheme...을 선택하자.


다음과 같은 창이 뜨면, Executable를 눌러 Other...을 선택하자.

Cmd + Shift + g 를 누르면, Go to the folder 창이 뜬다.

그 창에 /usr/bin을 입력하고, qlmanage 파일을 선택한다.

Arguments 탭에 Arguments Passed On Launch 에 테스트용파일을 지정하자.

"-p [filename]"


이렇게 설정을 마친 뒤에 Run 버튼을 누르면,

아까 지정한 파일에 대하여 Quick Look이 실행되는것을 볼 수 있다.