Je suis en train de travailler sur une application Cocoa dans laquelle je souhaite autoriser la suppression des messages.Comment se faire larguer Les données des messages dans une application Cocoa?
Si j'inclus public.plain-text
dans mes Info.plist Types de documents, je peux déposer un message Mail sur l'icône dans le Dock et obtenir un chemin de fichier comme celui-ci à partir de la méthode déléguée application:openFiles:
:
"/Users/smokris/Library/Caches/TemporaryItems/Re_ multiplexer question 3.eml"
.. .et je peux lire les données de message brutes de ce fichier. Jusqu'ici tout va bien.
Toutefois, je souhaite également que l'utilisateur puisse supprimer des messages électroniques dans la fenêtre de l'application. Donc, je fais ceci:
[window registerForDraggedTypes:[NSArray arrayWithObjects:(NSString *)kPasteboardTypeFileURLPromise,nil]];
... et performDragOperation:
, je reçois une URL comme celui-ci de la table de montage:
message:%[email protected]%3E
Si j'essayer de faire un NSURLRequest
sur cette URL, il me donne la erreur "URL non prise en charge".
Comment puis-je obtenir les données de message brutes à partir de cette URL message:
?
Merci. J'ai parcouru tous les '[pboard types]' pour lister leur contenu, mais je n'ai pas trouvé beaucoup plus que le message: 'url, les chemins de fichier de la boîte aux lettres dans laquelle le message est contenu (mais pas le lien lui-même), et la ligne d'objet du message. – smokris
Oh, l'exemple de wuffwuffware utilise AppleScript pour obtenir le corps du message. Pas idéal (AppleScript est lent et encombrant), mais beaucoup mieux que rien. Merci encore. – smokris
Une chance avec ça? J'essaie de faire la même chose et bien que je puisse obtenir le lien vers le fichier .eml lorsqu'il est déposé sur le Dock, je n'arrive pas à l'obtenir par glisser-déposer sur un NSTextView – strange