【问题标题】:NSPerformService "Tweet" with an Image (Twitter.app)NSPerformService "Tweet" 与图片 (Twitter.app)
【发布时间】:2012-06-13 11:53:57
【问题描述】:

NSPerformService(@"Tweet", [NSPasteboard generalPasteboard]); 有图片吗?我知道简单的文本是可能的,但我不知道图像。
如果是,示例代码会很好。
谢谢。

PS:对于那些不知道的人,这只有在用户安装了 Twitter.app 的情况下才有可能。

【问题讨论】:

  • 有趣,我以前从未听说过NSPerformService() 函数。
  • 你总是在学习:P 如果你愿意,我做了一些示例代码来说明如何执行此操作:pastebin.com/LFJfM1Hb
  • 您不应该为此使用通用粘贴板。这就是 Copy 和 Paste 命令的作用——如果您使用该粘贴板进行服务通信,您将破坏用户之前复制的任何内容。
  • 对,@PeterHosey 所说的:使用[NSPasteboard pasteboardWithUniqueName]

标签: objective-c macos cocoa service twitter


【解决方案1】:

您可以发送到服务的类型取决于已注册应用程序在其Info.plist 中声明的类型。对于Twitter.app,如下所示:

    <key>NSMenuItem</key>
    <dict>
        <key>default</key>
        <string>Tweet</string>
    </dict>
    <key>NSSendTypes</key>
    <array>
        <string>NSStringPboardType</string>
    </array>

不幸的是,这意味着您必须将图像转换为字符串才能被服务接受。

【讨论】:

  • 根据 Twitter 规范,这意味着将图像上传到某个地方,然后将其 URL 的绝对字符串放在您的粘贴板上。
猜你喜欢
  • 2016-01-21
  • 2012-05-09
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 2021-12-29
  • 2012-06-13
  • 1970-01-01
  • 2015-03-11
相关资源
最近更新 更多