gpt4 book ai didi

objective-c - 如何自动激活 OS X 服务菜单中的项目

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:22 25 4
gpt4 key购买 nike

我需要在服务菜单中默认启用我创建的服务。

我为我的 OS X 应用程序(在 Snow Leopard 上运行)创建了一个服务。我已经像这样配置了 Info.plist:

<key>NSServices</key>
<array>
<dict>
<key>NSSendTypes</key>
<array>
<string>NSStringPboardType</string>
</array>
<key>NSMessage</key>
<string>dropService</string>
<key>NSMenuItem</key>
<dict>
<key>default</key>
<string>Drop Service</string>
</dict>
<key>NSPortName</key>
<string>MyApp</string>
</dict>
</array>

到目前为止一切顺利,我遵循以下概述的其他步骤:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/SysServices/introduction.html一切似乎都在正常工作。

我运行了命令:

/System/Library/CoreServices/pbs

现在我的服务显示在“系统偏好设置 -> 键盘 -> 键盘快捷键 -> 服务”下。所以系统知道它。但它不会出现在服务菜单中,除非我手动激活它。

当我尝试调试服务时,我收到此消息:

/Applications/TextEdit.app/Contents/MacOS/TextEdit -NSDebugServices com.myapp.MyApp
Drop Service (com.myapp.MyApp) is disabled in the services menu and disabled in the context menu, by the standard Services policy.

我不知道“标准服务政策”是什么,而且我在 Apple 开发者网站上找不到任何关于此错误的引用。

我认为自动启用服务项目是不可能的,但我已经确认某些应用程序可以做到这一点(比如 Things from Cultured Code),所以我知道这是可以做到的。

有什么想法吗?

最佳答案

在不破解任何系统 plist 的情况下让您的服务默认启用的正确方法是编辑您自己的 plist。具体来说,在每个服务字典中添加 NSRequiredContext 键。此信息来自this mailing list post (取自 this answer on a similar question )。

至于您需要为该键提供的值,the documentation will fill you in .

关于objective-c - 如何自动激活 OS X 服务菜单中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3859747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com