6

AppStore のいくつかの OSX クリップボード マネージャーは、クリップボードにコピーされたコンテンツのソース アプリケーションを特定する機能を示しています。

私はいくつかの単純なクリップボード オブザーバーを作成しており、一般的な NSPasteboard に格納されているコンテンツの近くにソース アプリケーション アイコンを表示したいと考えています。そして、これをどのように達成できるかを知りたいです。

私が見る限り、NSPasteboard はデータの種類とデータ自体以外の追加情報を提供していません。

「コピー」コマンドがトリガーされたことを知るためのイベントまたは通知があるかもしれません。それとも他の方法ですか?

4

2 に答える 2

6

CopyLess と Alfred 2 (これもサポートしています) が機能する方法は、クリップボードの変更をチェックするタイマーがあることだと思います。クリップボードで変更を確認すると、アクティブなアプリケーションを取得し、そのアプリを変更に関連付けます。これはおそらく誰にでもできる方法ではありませんが、ほとんどの場合に機能するはずです。

于 2013-05-01T23:28:08.747 に答える
2

現在、これには新しい準標準があります (2016 年 12 月現在) 。http://nspasteboard.orgを参照してください。

次のように機能します。

  • デフォルトでは、クリップボードの内容を記録するプログラムは、最前面のアプリケーションがクリップボードをいっぱいにしたアプリケーションであると想定します (これは、クリップボードの内容が設定されているときにプログラムが既に実行されている場合にのみ機能します)。

  • ただし、 type のクリップボード フレーバー (種類) があるorg.nspasteboard.source場合、このフレーバーのコンテンツは、クリップボードを埋めたアプリのバンドル ID になります。

(これは、nspasteboard.org が管理するメーリング リストの関心のあるメンバーによって議論され、同意されているため、準標準です)

于 2017-01-04T15:43:57.377 に答える