2009-09-02 3 views
0

J'ai une application:Faire glisser une image à partir de Safari et la déposer sur l'icône du Dock ne fonctionne pas dans Snow Leopard?

Vous pouvez déposer un fichier image sur l'icône de la station d'accueil de l'application et il va télécharger l'image à un hébergeur d'images gratuit. En 10.5, vous pouvez faire glisser une image directement à partir de Safari (et de tout autre navigateur) et la déposer sur le dock. (L'application a ouvert l'image à partir du dossier temporaire le navigateur l'a mis en et téléchargé sur le net.)

Maintenant dans 10.6 la même application n'acceptera pas les images déposées à partir de safari (tout autre brwosers aussi) directement sur windows l'icône du dock. Le navigateur semble «exporter» l'URL Internet vers l'image (http://somedomain.com/the_image.png) au lieu du comportement 10.5 d'exportation du nom de fichier du fichier image dans le cache. Les fichiers locaux supprimés du Finder sont ouverts et traités de manière irréprochable. Les conséquences pour moi sont les suivantes: Je dois implémenter un service qui permet de déposer des URL sur mon icône de station d'accueil. Et puis de décider si un nom de fichier local a été supprimé ou une URL distante. Résultant dans le code standard pour décider si je devrais ouvrir l'image avec [NSData dataWithContentsOfFile] ou [NSData dataWithContentsOfURL] (malheureusement, vous ne pouvez pas créer un NSURL à partir d'un nom de fichier local)

Y at-il une bonne façon de gérer cela et se débarrasser de la passe-partout? (Préfixant 'file: //'. Au nom du fichier et l'ouverture comme une URL ne fonctionne pas)

Répondre

4

(vous pouvez malheureusement pas créer un NSURL d'un nom de fichier local)

Oui vous pouvez. Jetez un oeil à +[NSURL fileURLWithPath:] dans les docs.

+1

Mieux, [NSURL fileURLWithPath: chemin isDirectory: NO] puisque vous savez que votre image n'est pas un répertoire. Cette méthode ne frappe pas le disque. + fileURLWithPath: fait. C'est juste pour voir si l'URL a besoin d'une barre oblique - super ennuyeux. – Ken