0

Finder のコンテキスト メニューに項目を表示するためのサービスを作成しました。

アプリケーションに次のコードがあります。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [NSApp setServicesProvider:self];
    NSUpdateDynamicServices();
}

サービス自体の操作を使用して、コンテキスト メニューから項目を削除したいと思います。

私はやろうとしました:

NSUnregisterServicesProvider([[NSBundle mainBundle] bundleIdentifier]);

しかし、それはすべてのサービスを数秒間強制終了し、復活したとき、私のサービスは Finder コンテキスト メニューのサービス リストにありました。

ファインダのコンテキスト メニューから NSService アイテムを削除するにはどうすればよいですか?

4

2 に答える 2

0

ドキュメントには次のように書かれています

この関数を使用して、アプリケーションが提供するサービスを登録解除しないでください。アプリケーションのサービスには、引数setServicesProvider:を渡して NSApplication のメソッドを使用する必要がありnilます。

したがって、の代わりにapplicationDidFinishLaunching:pass を除いて、 で行ったことを実行します。(あなたがそのステップを実行する必要があるかどうかはわかりません。)nilselfNSUpdateDynamicServices

于 2013-07-08T04:58:10.093 に答える