2011-06-23 10 views
3

Finderのファイルのコンテキストメニューにカスタムメニュー項目を追加するにはどうすればよいですか?Finderのコンテキストメニューにカスタムメニュー項目を追加

残念ながら、インターネットやスタックオーバーフローに関する情報のほとんどは、10.6では機能しないか、あまりにも制限されています。たとえば、Automatorでは、アイテムを動的に作成したり、サブメニューを作成することはできません。

DropboxとFolderGlanceはどちらも同じことをしているので、この種のことはまだ可能です。誰も彼らがこれを実装した方法を知っていますか?

ありがとうございました。

+2

私はかなり特定のDropboxが([mach_inject]使用していますよhttps://github.com/rentzsch/mach_star)。これを達成するためにプロジェクトをどのように使用するかについては、それも私が把握しようとしていることです。 – livingtech

答えて

2

私はFolderGlanceをダウンロードし、ファインダーのプロセスにコードを挿入するOSAX(スクリプティング追加)バンドルを使用して表示されます。これは間違いなく壊れやすく、サポートされていません。

私が知っている限り、Finderのコンテキストメニューに項目を追加する唯一の方法は、サービスを作成することですが、これで問題は解決されません。

0

彼らはメニュー項目を追加するためにCFPlugInを使いました。ここで

より: http://developer.apple.com/library/ios/#documentation/CoreFoundation/Reference/CFPlugInRef/Reference/reference.html

+0

これを達成するために 'CFPlugin'をどのように使うことができるかについての詳細は? – livingtech

+2

これは "古い方法"であり、Leopard(Snow Leopardではなく)と旧バージョンのOSXでのみ動作します。 – livingtech

3

Dropboxはコードインジェクションのためにmach_starを使用するようになりました。明らかに、これは脆弱な解決策です。バージョン履歴を調べると、多くの更新情報がファインダー統合を修正することになります。

0

OS X 10.9.xまでMach_injectを介してFinderプロセスにコードを注入するのは解決策でした(そしてDropboxでさえ)。 10.10以降、コンテキストメニューをカスタマイズしたり、ツールバーにボタンを追加したり、ファイルアイコンの上にオーバーレイを配置するFinderプラグインがあります。

0

あなたは今OS X 10.10ヨセミテでのFinderのコンテキストメニューに項目を追加するためにファインダー同期拡張を使用することができます。

https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Finder.html

Finder Sync Extension in Context Menu

+0

こんにちは、[docs](https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Finder.html#//apple_ref/doc/uid/TP40014214-CH15-SW1)にあります'menuForMenuKind:'メソッドを実装して、メニュー種別を引数として渡す必要があることが言及されています。しかし、パラメータを使ってメソッドを呼び出す場所と、行ったようにアイコンを設定する方法については言及していません。サンプルコードを投稿していただけますか?それは本当に役に立つでしょう。 – Isuru

+0

@Isuru 'menuForMenuKind:'を実装すると、メソッドのデフォルトの実装をオーバーライドします。 *自分でメソッドを呼び出す必要はありません。Finderは必要なときに呼び出し、デフォルトではなくカスタムメニューを取得します。新しいFinder Sync Extension **ターゲット**をアプリに追加してください。そうすると、Xcodeは一連の定型コードを挿入し、変更することができます。 – pkamb

関連する問題