如何更改info.plist中的NSServices并进行系统更改?

时间:2018-08-22 09:56:19

标签: macos service info.plist

我在info.plist中添加服务,例如

<key>NSServices</key>
<array>
    <dict>
        <key>NSMessage</key>
        <string>service</string>
        <key>NSPortName</key>
        <string>ServiceDemo</string>
        <key>NSMenuItem</key>
        <dict>
            <key>default</key>
            <string>Service Demo</string>
        </dict>
        <key>NSRestricted</key>
        <false/>
        <key>NSRequiredContext</key>
        <dict/>
        <key>NSSendTypes</key>
        <array>
            <string>NSStringPboardType</string>
        </array>
    </dict>
</array>

运行该应用程序,一切正常。  现在,我想更改一些值,但是在终端中的info.plist-> run-> type命令中编辑后

/System/Library/CoreServices/pbs -dump_pboard

什么都没有改变。 我尝试了干净的DerivedData->重新启动Xcode-> shift + command + K->运行,没有任何变化。 重新启动计算机没有帮助。 我想知道在首次启动时如何安装info.plist中的服务吗?以及当我运行该应用程序时如何进行更改?

顺便说一下,这些代码在AppDelegate.swift中

func applicationDidFinishLaunching(_ aNotification: Notification) {
    NSApplication.shared.servicesProvider = ServiceProvider()
    NSUpdateDynamicServices()
}

有关详细信息,请参见demo on GitHub

1 个答案:

答案 0 :(得分:0)

在XCode中构建应用程序后,您是否尝试过运行/System/Library/CoreServices/pbs -update