每当我想在网上冲浪并突出显示一堆文字时,我会在上下文菜单中看到“带有选择的新TextWrangler文档”项目。
如何使用我的应用程序复制此功能,以便每当用户在任何其他应用程序中选择文本时,他都可以在上下文菜单中看到“带有选择的新建(我的应用程序)文档”项目,并在单击它时,将所选文本提供给我的应用程序?
更新
为了尝试回答我自己的问题,我在此处按照示例代码进行操作:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/SysServices/Articles/providing.html
在突出显示的文本上实现简单的rot13加密服务。但它没有用。
http://i43.tinypic.com/8z38qo.jpg http://i42.tinypic.com/2z4co0o.jpg
虽然我的“加密文本”出现在系统首选项菜单中,如“New TextWrangler Document with Selection”,如上所示,但它实际上并未显示在应用程序的服务菜单中,或者在选择文本时右键单击上下文菜单。
有人可以告诉我为什么苹果文档中的示例代码无效
@PeterHosey在这里,也是NSRequiredContext:
http://i39.tinypic.com/51d06o.jpg
我的应用名称称为“simpleEncrypt”,该消息与从Apple的服务实施指南中复制的消息完全相同。
- (void)simpleEncrypt:(NSPasteboard *)pboard
userData:(NSString *)userData error:(NSString **)error;
答案 0 :(得分:0)
您需要包含描述服务何时适合启用的an NSRequiredContext
dictionary in your service dictionary。在此之前,默认情况下会在所有上下文中禁用它。 (我不确定为什么即使你启用它之后它仍然没有出现,但这是必需的第一步。)
答案 1 :(得分:0)
在the Info.plist for my Translate Text application中,我使用NSStringPboardType
作为其每项服务的发送类型。
system-declared UTIs列表显示现代等价物为public.utf8-plain-text
,因此请尝试将服务的发送和返回类型更改为该值。
如果有效,列出所有纯文本变体可能是个好主意。那些列在统一类型标识符参考中;它们是符合public.plain-text
的类型。