2011-08-29 7 views
3

내 코코아 (Mac) 애플리케이션은 표준 파일 확장자가없는 파일 형식을 처리하며 사용자로부터받은 요청 번호는 모든 파일 확장명을 가진 파일을 열 수있게하는 것입니다. 내가 준비한 가장 일반적인 것들의 닫힌 세트.코코아에서 임의의 파일 열기

일반적으로 클래스를 처리하는 UTI를 선언하고 필요에 따라 가져온 UTI 또는 내 보낸 UTI를 선언하여 Info.plist에서 열 파일의 종류를 지정합니다. UTI와 연관 될 파일 확장명 목록을 지정할 수 있습니다. 여기에 나열되지 않은 확장명을 가진 파일은 도킹의 응용 프로그램 아이콘으로 삭제할 수 없으며 파일 열기 대화 상자에서 회색으로 표시됩니다. 이 동작을 무시하고 확장명을 가진 파일을 수락 할 수있는 방법을 찾지 못하는 것 같습니다. 파일 확장자에 *를 할당하는 것이 좋습니다 인터넷 사이트에는 여러 사이트가 있지만 저에게는 효과가없는 것 같습니다.

Mac App Store에는 Apple에서 제공하는 일부 (Xcode)와 타사 개발자 (TextWrangler)에서 제작 한 것의 몇 가지가 있습니다. 따라서 합법적 인 방법이 있어야한다고 가정합니다. 이것을 달성하십시오.

TLDR : 코코아에서 확장명을 가진 파일을 수락하는 방법?

답변

2

이 앱은 내 앱 중 하나에 설정되어 있습니다.

<array> 
     <dict> 
      <key>CFBundleTypeExtensions</key> 
      <array> 
       <string>*</string> 
      </array> 
      <key>CFBundleTypeMIMETypes</key> 
      <array> 
       <string>public.item</string> 
      </array> 
      <key>CFBundleTypeOSTypes</key> 
      <array> 
       <string>****</string> 
      </array> 
      <key>CFBundleTypeRole</key> 
      <string>Viewer</string> 
      <key>LSItemContentTypes</key> 
      <array> 
       <string>public.item</string> 
      </array> 
      <key>LSTypeIsPackage</key> 
      <false/> 
      <key>NSDocumentClass</key> 
      <string>MONDocumentClass</string> 
     </dict> 
    </array> 

하지만 당신은 그것을 수정해야 할 수 있습니다 : 그것은의 Info.plist 키 'CFBundleDocumentTypes'에 대한 다음과 같은 값으로 정의합니다.

+0

감사합니다. 나중에 참조하기 위해 내가 놓친 비트는 LSItemContentTypes 목록에서 시스템에서 미리 정의 된 UTI를 참조하고 확장을 제한하는 것으로 보인 것입니다. –

+0

동일한 정보를 내 정보 plist에 사용하십시오. 앱이 다른 모든 앱에서 사진을 보여줍니다. 왜 거기에 있지 않은지 제발 도와 주실 수 있습니까? –