2010-12-05 3 views
0

Dock 아이콘에 마운트 된 볼륨 드롭을 허용해야하는 Cocoa 응용 프로그램을 작성하고 있습니다. 문서 기반이 아닙니다. 각 볼륨을 application:openFiles의 적절한 핸들러로 보내려합니다.Dock 아이콘의 볼륨 드롭 허용

Dock에서 응용 프로그램의 타일을 끌기 위해 끌었지만 떨어 뜨리면 응용 프로그램에 "문서 [볼륨 이름]을 열 수 없습니다. [내 응용 프로그램]이 형식의 파일을 열 수 없습니다. "내 application:openFiles: 메서드는 절대 실행되지 않으며 위임자가 연결되어 다른 대리인 메시지가 전송됩니다.

그럼 Dock 타일에 한 방울의 볼륨을 허용하는 올바른 방법은 무엇입니까?

답변

2

아마 Info.plist이 제대로 설정되지 않았습니다. 그것은이 같은 것을 포함해야한다 :

CFBundleDocumentTypes =  (
    { 
     LSItemContentTypes =    (
      "public.volume" 
     ); 
    } 
); 

를하거나 사전에 10.5을 지원해야하는 경우 대신 CFBundleOSTypesdisk를 사용할 수 있습니다.

이렇게하면 application:openFiles:을 사용할 수있었습니다. 당신은 이미 그 일을하는 경우

, 아마 등, 죽은 닭 웨이브, lsregister를 사용, 다른 사용자 계정을 시도, 깨끗한 ... 서비스가 혼동하기 시작하고 프로젝트를 다시 것

+0

나는 com.apple.mount-point와 함께 그것을 가지고 있었고 그것은 끌기를 무시했다. 그것을 제거하고'OSType' 'disk'로만 남겨 두었습니다. 그리고 그것은 어떻게 타일을 켜 놓았지만 떨어 뜨릴 때 경고를 받았습니다. 'public.volume'으로 시도해보고 어떤 일이 일어나는지 알려줄 것입니다. –

+0

네가 완전히 맞았다. 전체 업데이트에 대한 내 대답을 참조하십시오. –

0

... 대리인이 연결되어 다른 대리인 메시지가 전송됩니다.

아니면 그렇게 생각했습니다.

Mea culpa - 실제로 대리인을 만들지 않았습니다. 내가 왜 내가 그럴 줄 알았는지 모르겠다.

대리모가 MainMenu 펜촉에 인스턴스화되고 연결되고 Info.plist 변경 사항 Nicholas Riley가 제안한 것과 함께 이제 드롭이 작동합니다.