OSX/Cocoa:在右键单击和服务列表的菜单中设置服务

Zig*_*rth 1 macos service cocoa objective-c right-click

我已经按照所有Apple文档为设置右键菜单列表和服务列表的服务:

  1. 我已经完成了所有相关的info.plist条目.(发送类型,端口名称,菜单标题,实例方法等)
  2. 我创建了处理服务的方法.
  3. 我在应用程序中添加了服务注册码.
  4. 我构建了我的应用程序,将其放在应用程序目录中,注销并重新登录.

尽管如此,我无法在任何菜单项中看到我的服务.

编辑**这是我的info.plist的服务部分:

    <key>NSServices</key>
<array>
    <dict>
        <key>NSMenuItem</key>
        <dict>
            <key>default</key>
            <string>MyApp/Send to MyApp</string>
        </dict>
        <key>NSMessage</key>
        <string>contentService</string>
        <key>NSPortName</key>
        <string>MyApp</string>
        <key>NSSendTypes</key>
        <array>
            <string>NSStringPboardType</string>
            <string>NSFileContentsPboardType</string>
        </array>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?提前致谢.

Pet*_*sey 6

我已经按照所有Apple文档来设置服务...

啊,那就是问题:你在那里停了下来.您还需要将NSRequiredContext密钥添加到服务中,以便在Snow Leopard及更高版本上默认启用它.

幸运的是,虽然服务文档没有提到这NSRequiredContext是必需的,但信息属性列表键参考确实解释了您必须为其提供的值.