23

Dropbox には、Finder ツールバーにボタンを追加するオプションがあります。「ツールバーのカスタマイズ...」ウィンドウにも表示されます。この種のことがどのように行われるかについてのドキュメントが見つかりません....これを行う方法を知っている人はいますか、またはドキュメントやサンプルコードを教えてもらえますか?

編集 1:

まず、既存のアイコンの場所と関連するコードを見つけることから始めると思います。

Dropbox の Library/DropboxHelperTools/Dropbox_u501 に mach_inject_bundle_stub.bundle と FinderLoadBundle というファイルがあり、魔法のように機能している可能性があることに気付きました。Dropbox はまた、Finder アイコンに「チェック」バッジを付けています。このコードが関係している可能性があります: github.com/rentzsch/mach_star

編集 2: このプロセスに関する Rian Hunter による Dropbox の講演は、15:30 頃 http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-how-dropbox-did-にあります。 it-and-how-python-helped-4896698

Dropbox_u501 の DropboxBundle ファイルを見ると、アイコンといくつかのコンパイル済みコードが表示されます。コードは、Rian Hunter が作成者であることを示しています: http://twitter.com/timeserena

Rian は彼の github に独自のバージョンの Mach Star コードを持っています - https://github.com/rianhunter/mach_star - それはずっと古いようです

編集 3

数週間前にスタンフォードで「コード インジェクション ワークショップ」が開催されました - http://stanfordacm.com/past/ - Rian が主催。誰かがこれからのメモを持っているなら、私に知らせてください!

4

4 に答える 4

10

Finder Syncアプリの拡張機能を使用できます(OS X v10.10 以降)。

Finder Sync 拡張機能は次のことができます。

  • 監視対象フォルダー内のアイテムのバッジとラベルを追加、削除、および更新します。
  • ユーザーが監視対象フォルダー内の項目を Control キーを押しながらクリックすると、コンテキスト メニューが表示されます。
  • Finder のツールバーにカスタム ボタンを追加します。
于 2015-02-11T12:46:03.500 に答える
8

Dropbox は文書化されていない魔法を使用していました。これを行うための公式にサポートされている方法はありません。リバースエンジニアリングなしで取得できる最も近いものはServicesです。

(更新: macOS 10.11 の時点で、Dropbox が行っていたことがまったくできなくなりました。システム整合性保護は、コードが Finder などのシステム プロセスに挿入されるのを防ぐようになりました。)

于 2011-12-05T05:43:09.537 に答える
2

PyCon 2011 (blip.tv) での Rian の講演では、「Finder をリバース エンジニアリングした」以上の説明はありません。mach_star の内容は価値がありますが、サイドバー アイコンを機能させる方法についてはまだ説明されていません。そして、スタンフォードの「コード インジェクション ワークショップ」は、この方法に関するコンテンツを投稿していません。

Dropbox がユーザーごとに /Library/DropboxHelperTools の下にインストールする両方のバンドルを nm してクラス ダンプしたところ、出力から適切な洞察が得られました。戻ってきたら、調査を終了して投稿します。オッズは、しばらくの間ではないので、このナッジが他の誰かを助けることを願っています.

于 2013-02-26T13:31:09.440 に答える
1

一部の人にとって適切な簡単な中間の答えは、ボタンのようなアイコンを作成することです。

たとえば、Finder 用に「ここに新しいテキスト ファイル」と「ここに新しいターミナル アイコン」を作成しました。

ここに画像の説明を入力

メソッドはここにあります。

欠点は、それらが正方形でなければならず、アニメーション/メニューがなく、「ツールバーのカスタマイズ」などに表示されないことです.

于 2013-12-04T10:37:14.193 に答える