Je crée une application pour Mac OS X, et je voulais savoir si je l'ai utilisé correctement dans le fichier IVU .plist de l'application:Ai-je utilisé correctement les identificateurs de type uniforme?
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>com.petroules.silverlock.database</string>
<key>UTTypeDescription</key>
<string>Silverlock Database File</string>
<key>UTTypeIconFile</key>
<string>app.icns</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>SDBX</string>
<key>public.filename-extension</key>
<array>
<string>sdbx</string>
</array>
<key>public.mime-type</key>
<string>application/octet-stream</string>
</dict>
</dict>
</array>
Ce code semble fonctionner, même si un double clic sur un Le fichier .sdbx dans Finder n'entraîne pas l'ouverture du fichier par mon application ... mais il se peut que ce soit mon code (quelque chose que j'examinerai plus tard). En outre, le format de mon type de fichier est un contenu crypté codé en base-64 ... est le flux d'application/octet le meilleur type MIME à utiliser pour cela ou y a-t-il autre chose que je devrais utiliser, et pourrais-je rencontrer des problèmes de compatibilité n'importe où dans le spectre en utilisant un type MIME moins commun?
Aussi, j'inclus le code suivant:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>sdbx</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>app.icns</string>
<key>CFBundleTypeName</key>
<string>com.petroules.silverlock.database</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>com.petroules.silverlock.database</string>
</array>
<key>LSHandlerRank</key>
<string>Owner</string>
</dict>
</array>
Dois-je inclure du tout parce que j'ai le code UTI ci-dessus? Est-ce nécessaire? Quelles sont les différences entre les deux? Je n'ai pas vraiment pu vérifier cela à partir de la documentation. Merci :)
J'aurais dû mentionner que c'est une application basée sur Qt, donc '[[application NSapp délégué]: openFile:]' ne s'applique pas ... Je vais devoir vérifier mon code demain. Merci pour les informations concernant le fichier de plist et les infections urinaires. –
Voir http://stackoverflow.com/questions/3451280/opening-files-from-finder-with-a-qt-based-application concernant l'ouverture de fichiers dans les applications Qt quand on double-clique sur Finder. –