我的应用程序处理*.mndl
类型的文件,该文件不超过自定义*.plist
。
到目前为止,我一直在使用*.plist
个文件,但现在我想关联扩展程序并能够从任何其他应用程序打开*.mndl
文件我已经意识到将file.plist
重命名为{{ 1}}不起作用。 (因此,我甚至不知道我是否正确地执行了扩展关联和导出事项)
我从计算机发送了一个文件file.mndl
,当我收到mail.app时,我得到了
file.mndl
(它自动重命名,重置我的iPad时发生了这种情况)
如何在能够使用NSDictionary类中的file.mndl.plist
读取其内容的同时创建自己的mndl文件?
即使我正在使用iOS,我相信这种东西都是从MacOS和Cocoa移植过来的。所以Cocoa开发人员也可以知道这一点。
感谢您的意见/答案。
由于
ANSWERED: 仅用于完成目的这是我对info.plist的补充:
+dictionaryWithContentsOfFile:
答案 0 :(得分:8)
至少对于Cocoa(桌面)应用程序,您需要将以下信息添加到应用程序的Info.plist中。
http://www.markdouma.com/developer/nacho.plist
显然,您应该将统一类型标识符更改为适当的标识符。 (我通常做com.markdouma.something,因为那是我的网站)。
请注意,如果您计划通过创建NSDocument子类来处理加载文件来计划使用Cocoa的NSDocument体系结构,那么您只想为NSDocumentClass指定一个条目。否则,你总是可以实现以下< NSApplicationDelegate> (读作应用程序委托协议)方法:
- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames;
这将为您提供一个NSArray NSStrings,表示用户在Finder中双击的文件的POSIX路径(或拖动到应用程序图标等)
如果要转到NSDocument路由,可以覆盖以下NSDocument方法
- (BOOL)readFromURL:(NSURL *)url ofType:(NSString *)type error:(NSError **)outError;
用[[NSDictionary dictionaryWithContentsOfFile:[url path]] retain]创建你的字典;
希望这会有所帮助......
答案 1 :(得分:3)
最终我发现了这个也可以用作参考: 我在Google的缓存中找到了这个,它显示了如何添加具有不同属性的多个扩展:)
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<string>public.audio</string>
<key>UTTypeIdentifier</key>
<string>public.mp3</string>
<key>UTTypeDescription</key>
<string>MP3 audio</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<array>
<string>MPG3</string>
<string>mpg3</string>
<string>Mp3 </string>
<string>MP3 </string>
<string>mp3!</string>
<string>MP3!</string>
</array>
<key>public.mime-type</key>
<array>
<string>audio/mpeg</string>
<string>audio/mpeg3</string>
<string>audio/mpg</string>
<string>audio/mp3</string>
<string>audio/x-mpeg</string>
<string>audio/x-mpeg3</string>
<string>audio/x-mpg</string>
<string>audio/x-mp3</string>
</array>
<key>public.filename-extension</key>
<string>mp3</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.audio</string>
</array>
<key>UTTypeIdentifier</key>
<string>public.mpeg-4-audio</string>
<key>UTTypeDescription</key>
<string>MPEG-4 audio</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<array>
<string>M4A </string>
</array>
<key>public.mime-type</key>
<array>
<string>audio/mp4</string>
</array>
<key>public.filename-extension</key>
<array>
<string>m4a</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.movie</string>
<key>UTTypeIdentifier</key>
<string>public.mpeg-4</string>
<key>UTTypeDescription</key>
<string>MPEG-4 movie</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<array>
<string>mpg4</string>
<string>MP4 </string>
</array>
<key>public.mime-type</key>
<array>
<string>video/mp4</string>
<string>video/mp4v-es</string>
</array>
<key>public.filename-extension</key>
<array>
<string>mp4</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.movie</string>
<key>UTTypeIdentifier</key>
<string>public.mpeg</string>
<key>UTTypeDescription</key>
<string>MPEG movie</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<array>
<string>MPG </string>
<string>MPEG</string>
</array>
<key>public.mime-type</key>
<array>
<string>video/mpeg</string>
<string>video/mpg</string>
<string>video/x-mpeg</string>
<string>video/x-mpg</string>
</array>
<key>public.filename-extension</key>
<array>
<string>mpg</string>
<string>mpeg</string>
<string>mpe</string>
<string>m75</string>
<string>m15</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.audiovisual-content</string>
<key>UTTypeIdentifier</key>
<string>public.audio</string>
<key>UTTypeDescription</key>
<string>audio</string>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.movie</string>
<key>UTTypeIdentifier</key>
<string>public.video</string>
<key>UTTypeDescription</key>
<string>video</string>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.audiovisual-content</string>
<key>UTTypeIdentifier</key>
<string>public.movie</string>
<key>UTTypeDescription</key>
<string>movie</string>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.image</string>
<key>UTTypeIdentifier</key>
<string>com.microsoft.bmp</string>
<key>UTTypeDescription</key>
<string>Windows bitmap image</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<array>
<string>BMP </string>
<string>BMPf</string>
</array>
<key>public.mime-type</key>
<string>image/bmp</string>
<key>public.filename-extension</key>
<string>bmp</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.content</string>
</array>
<key>UTTypeIdentifier</key>
<string>public.audiovisual-content</string>
<key>UTTypeDescription</key>
<string>audiovisual content</string>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.image</string>
<key>UTTypeIdentifier</key>
<string>public.png</string>
<key>UTTypeDescription</key>
<string>Portable Network Graphics image</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>PNGf</string>
<key>public.mime-type</key>
<string>image/png</string>
<key>public.filename-extension</key>
<string>png</string>
<key>com.apple.nspboard-type</key>
<string>Apple PNG pasteboard type</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.image</string>
<key>UTTypeIdentifier</key>
<string>com.compuserve.gif</string>
<key>UTTypeDescription</key>
<string>Graphics Interchange Format (GIF)</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>GIFf</string>
<key>public.mime-type</key>
<string>image/gif</string>
<key>public.filename-extension</key>
<string>gif</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.image</string>
<key>UTTypeIdentifier</key>
<string>public.tiff</string>
<key>UTTypeDescription</key>
<string>TIFF image</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>TIFF</string>
<key>public.mime-type</key>
<string>image/tiff</string>
<key>public.filename-extension</key>
<array>
<string>tiff</string>
<string>tif</string>
</array>
<key>com.apple.nspboard-type</key>
<array>
<string>NeXT TIFF v4.0 pasteboard type</string>
<string>NSTIFFPboardType</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.image</string>
<key>UTTypeIdentifier</key>
<string>public.jpeg-2000</string>
<key>UTTypeDescription</key>
<string>JPEG 2000 image</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>jp2 </string>
<key>public.mime-type</key>
<string>image/jp2</string>
<key>public.filename-extension</key>
<array>
<string>jp2</string>
<string>jpf</string>
<string>jpx</string>
<string>j2k</string>
<string>j2c</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.image</string>
<key>UTTypeIdentifier</key>
<string>public.jpeg</string>
<key>UTTypeDescription</key>
<string>JPEG image</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>JPEG</string>
<key>public.mime-type</key>
<array>
<string>image/jpeg</string>
<string>image/jpg</string>
</array>
<key>public.filename-extension</key>
<array>
<string>jpeg</string>
<string>jpg</string>
<string>jpe</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.content</string>
</array>
<key>UTTypeIdentifier</key>
<string>public.image</string>
<key>UTTypeDescription</key>
<string>image</string>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.composite-content</string>
</array>
<key>UTTypeIdentifier</key>
<string>com.apple.webarchive</string>
<key>UTTypeDescription</key>
<string>web archive</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<array>
<string>weba</string>
</array>
<key>public.mime-type</key>
<array>
<string>application/x-webarchive</string>
</array>
<key>public.filename-extension</key>
<array>
<string>webarchive</string>
</array>
<key>com.apple.nspboard-type</key>
<array>
<string>Apple Web Archive pasteboard type</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.composite-content</string>
</array>
<key>UTTypeIdentifier</key>
<string>com.adobe.pdf</string>
<key>UTTypeDescription</key>
<string>Portable Document Format (PDF)</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>PDF </string>
<key>public.mime-type</key>
<string>application/pdf</string>
<key>public.filename-extension</key>
<string>pdf</string>
<key>com.apple.nspboard-type</key>
<string>Apple PDF pasteboard type</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.text</string>
<key>UTTypeIdentifier</key>
<string>public.html</string>
<key>UTTypeDescription</key>
<string>HTML text</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>HTML</string>
<key>public.mime-type</key>
<string>text/html</string>
<key>public.filename-extension</key>
<array>
<string>html</string>
<string>htm</string>
<string>shtml</string>
<string>shtm</string>
</array>
<key>com.apple.nspboard-type</key>
<string>Apple HTML pasteboard type</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.plain-text</string>
<key>UTTypeIdentifier</key>
<string>public.utf16-plain-text</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>utxt</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.plain-text</string>
<key>UTTypeIdentifier</key>
<string>public.utf16-external-plain-text</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>ut16</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.plain-text</string>
<key>UTTypeIdentifier</key>
<string>public.utf8-plain-text</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>utf8</string>
<key>com.apple.nspboard-type</key>
<string>NSStringPboardType</string>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<string>public.text</string>
<key>UTTypeIdentifier</key>
<string>public.plain-text</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.mime-type</key>
<string>text/plain</string>
<key>public.filename-extension</key>
<array>
<string>txt</string>
<string>text</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.content</string>
</array>
<key>UTTypeIdentifier</key>
<string>public.text</string>
<key>UTTypeDescription</key>
<string>text</string>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>mp3</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/mpeg</string>
<string>audio/mpeg3</string>
<string>audio/mpg</string>
<string>audio/mp3</string>
<string>audio/x-mpeg</string>
<string>audio/x-mpeg3</string>
<string>audio/x-mpg</string>
<string>audio/x-mp3</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>MPG3</string>
<string>mpg3</string>
<string>Mp3 </string>
<string>MP3 </string>
<string>mp3!</string>
<string>MP3!</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>MP3 audio</string>
<key>LSItemContentTypes</key>
<array>
<string>public.mp3</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>m4a</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/mp4</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>M4A </string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>MPEG-4 audio</string>
<key>LSItemContentTypes</key>
<array>
<string>public.mpeg-4-audio</string>
</array>
</dict>
<dict>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>audio</string>
<key>LSItemContentTypes</key>
<array>
<string>public.audio</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>bmp</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>image/bmp</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>BMP </string>
<string>BMPf</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>Windows bitmap image</string>
<key>LSItemContentTypes</key>
<array>
<string>com.microsoft.bmp</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>png</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>image/png</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>PNGf</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>Portable Network Graphics image</string>
<key>LSItemContentTypes</key>
<array>
<string>public.png</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>gif</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>image/gif</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>GIFf</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>Graphics Interchange Format (GIF)</string>
<key>LSItemContentTypes</key>
<array>
<string>com.compuserve.gif</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>tiff</string>
<string>tif</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>image/tiff</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>TIFF</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>TIFF image</string>
<key>LSItemContentTypes</key>
<array>
<string>public.tiff</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>jp2</string>
<string>jpf</string>
<string>jpx</string>
<string>j2k</string>
<string>j2c</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>image/jp2</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>jp2 </string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>JPEG 2000 image</string>
<key>LSItemContentTypes</key>
<array>
<string>public.jpeg-2000</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>jpeg</string>
<string>jpg</string>
<string>jpe</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>image/jpeg</string>
<string>image/jpg</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>JPEG</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>JPEG image</string>
<key>LSItemContentTypes</key>
<array>
<string>public.jpeg</string>
</array>
</dict>
<dict>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>image</string>
<key>LSItemContentTypes</key>
<array>
<string>public.image</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>webarchive</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-webarchive</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>weba</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>web archive</string>
<key>LSItemContentTypes</key>
<array>
<string>com.apple.webarchive</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>pdf</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/pdf</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>PDF </string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>Portable Document Format (PDF)</string>
<key>LSItemContentTypes</key>
<array>
<string>com.adobe.pdf</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>html</string>
<string>htm</string>
<string>shtml</string>
<string>shtm</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>text/html</string>
</array>
<key>CFBundleTypeOSTypes</key>
<array>
<string>HTML</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>HTML text</string>
<key>LSItemContentTypes</key>
<array>
<string>public.html</string>
</array>
</dict>
<dict>
<key>CFBundleTypeOSTypes</key>
<array>
<string>utxt</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>LSItemContentTypes</key>
<array>
<string>public.utf16-plain-text</string>
</array>
</dict>
<dict>
<key>CFBundleTypeOSTypes</key>
<array>
<string>ut16</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>LSItemContentTypes</key>
<array>
<string>public.utf16-external-plain-text</string>
</array>
</dict>
<dict>
<key>CFBundleTypeOSTypes</key>
<array>
<string>utf8</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>LSItemContentTypes</key>
<array>
<string>public.utf8-plain-text</string>
</array>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>txt</string>
<string>text</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>text/plain</string>
</array>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>LSItemContentTypes</key>
<array>
<string>public.plain-text</string>
</array>
</dict>
<dict>
<key>LSTypeIsPackage</key>
<false />
<key>NSExportableAs</key>
<array>
</array>
<key>CFBundleTypeName</key>
<string>text</string>
<key>LSItemContentTypes</key>
<array>
<string>public.text</string>
</array>
</dict>
</array>