我刚刚开始在 OSX 10.6.8 上用 cocoa 编写应用程序。这主要归功于我在这里找到的线程。对于我将要解释的微妙功能,我到处寻找,并且确实尽了最大努力,但没有成功。情况如下:
有一个浏览器(现在是chrome,但该解决方案至少应该适用于FF和Safari)
有我的 chrome 扩展
有我的桌面应用程序
可以将文本/图像拖到我的桌面应用程序上,然后按来源组织这些项目。
对于来自 finder 的文件/文本(Web 浏览器除外),使用文件路径标记文件是所需的行为,对于文本我只是将剪贴板作为源。现在的问题是,从 Web 浏览器中拖出的文件/文本应该以从中拖出的网站作为源。文件有一个简单的修复方法:我有一个扩展,它使用最后一个活动 url 设置一个缓冲区,以便我需要检查何时拖动文件是它是否来自 chrome 缓存以用上述内容标记它缓冲。我的问题是文本。处理文本拖动的方式是使用我在 .plist 中声明的服务,在 SO 上有一个类似的未回答问题和一种似乎可以工作的技术但它仅适用于 10.7。我还找到了一个链接,其中有人设法使用http://www.mail-archive.com/cocoa-dev@lists.apple.com/msg17452.html获取拖到他的应用程序上的 iTunes 歌曲的 url
是否有解决方案可以查看仅使用可可处理的拖动图像/文本的 URL?我看到的唯一其他选择是使用扩展程序将 javascript 代码注入所有网页以处理“dragenter”事件,并通过自定义协议将被拖动的内容与源 URL 一起发送到桌面应用程序。我不太热衷于脚本注入,而且我也感觉到这条路有些复杂。
无论如何感谢您的帮助!
巧克力酱。