作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 Cocoa 应用程序,我希望允许将邮件消息放入其中。
如果我在 Info.plist 文档类型中包含 public.plain-text
,我可以将邮件消息放在 Dock 中的图标上,并从 获取如下文件路径application:openFiles:
委托(delegate)方法:
"/Users/smokris/Library/Caches/TemporaryItems/Re_ multiplexer question 3.eml"
...我可以从此文件中读取原始消息数据。到目前为止一切顺利。
但是,我还希望用户能够将邮件消息拖放到应用程序窗口上。所以我这样做:
[window registerForDraggedTypes:[NSArray arrayWithObjects:(NSString *)kPasteboardTypeFileURLPromise,nil]];
...在 performDragOperation:
中,我从粘贴板获得如下 URL:
message:%3CAANLkTikeTeWYU39JpTovxF2PC0Mm=xkrU7fHNh6gGh6V@mail.gmail.com%3E
如果我尝试对此 URL 执行 NSURLRequest
,则会出现错误“不支持的 URL”。
如何从此 message:
URL 获取原始消息数据?
最佳答案
我使用 Apple 的 PasteboardPeeper 示例代码(来自 http://developer.apple.com/library/mac/#samplecode/PasteboardPeeker/Introduction/Intro.html )进行了尝试,将消息拖到主目录中确实显示该消息的路径可用:
PasteboardRef: 1395632 ItemCount: 1
Index: 1 item ID: 789514
"dyn.ah62d4rv4gu8y4zvanr41xxxxx30n25wqz4ca5pfsr30c35feb4he2pssrxgn6vasbu1g7dfqm1"
"MV Super-secret message transfer pasteboard type"
'' ______ 82 /Users/guest/Library/Mail/IMAP-me@gmail.com@imap.gmail.com/INBOX.imapmb
"dyn.ah62d4rv4gu8zg7puqz3c465fqr3gn7bakf41k55rqf4g86vasbu1g7dfqm10c6xeeb4hw6df"
"Super-secret Automator pasteboard type"
'' ______ 454 <?xml version= 1.0 encoding= UTF-8 ?> < DOCTYPE plist PUBLIC -//Apple//DTD PLI
"dyn.ah62d4rv4gu8yc6durvwwa3xmrvw1gkdusm1044pxqyuha2pxsvw0e55bsmwca7d3sbwu"
"Apple files promise pasteboard type"
'' ______ 212 <?xml version= 1.0 encoding= UTF-8 ?> < DOCTYPE plist PUBLIC -//Apple//DTD PLI
"public.url"
""
'url ' ______ 74 message: 3C6EEF5CFD6A04D6395BC617836C91FC3A050542759970026E@cornell.edu 3E
"public.url-name"
""
'urln' ______ 56 A friend thought you would be interested in this station
"com.apple.pasteboard.promised-file-content-type"
""
'' ______ 23 dyn.ah6xxxqmxhk2x43prru
"com.apple.pasteboard.promised-file-url"
""
'' ______ 0
"dyn.ah62d4rv4gu8y6y4usm10xxxxqzb085xyqz1hk64uqm10c6xenv61a3k"
"NSPromiseContentsPboardType"
'' ______ 0
"dyn.ah62d4rv4gk81a4dgsq"
""
'phfs' PT____ 14 ???????? Pssf
我不知道“MV超密消息传输粘贴板类型”是什么,但你可能不想依赖它作为 key 名称;相反,也许您可以遍历所有键,看看其中是否有任何一个看起来像文件路径。
附注这可能也令人感兴趣:http://www.wuffwuffware.com/developer.html
关于cocoa - 如何在 Cocoa 应用程序中获取删除的邮件消息数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115987/
我是一名优秀的程序员,十分优秀!