Safari、Pages、TextEdit、Word など、最前面のアプリケーション ウィンドウで現在選択されているテキストを取得し、そのテキストで何かを行う必要があるアプリケーションにすぐに取り組みます。
私の目標は、できるだけ多くのアプリケーションで機能するソリューションを見つけることです。これまでAppleScriptを使用することを考えていましたが、それでは私のサービスで使用できるアプリケーションの量が制限されてしまいます。少なくとも、Safari、Firefox (AppleScript なし?)、Word、Pages、Excel、TextEdit などの一般的なアプリケーションをサポートする必要があります。
また、 clipboardのコンテンツを一時変数に保持してから、テキストのコピー操作 (Cmd-C) をシミュレートし、テキストを取得してから元のコンテンツに戻すことも考えました。これにより、コピー操作時に [編集] メニュー項目が強調表示される可能性があります。シミュレートされており、私には少しハッキーに思えます。IMO このソリューションは、商用製品には十分ではないようです。
また、将来的にいくつかの追加機能を追加するために、選択以上のもの (つまり、Safari や Word のページの完全なコンテンツなど) を取得したいと考えています。
この動作を実装する方法に関するアイデア/詳細はありますか?
ヒントを事前にありがとう!
注意: 少なくとも 10.4 以降をサポートする必要がありますが、理想的には 10.4 よりも古いバージョンもサポートする必要があります。
アップデート:
私が選んだ解決策: 「責任の連鎖」デザイン パターン (GOF) を使用して、3 つの異なる入力方法 (ペーストボード、AppleScript、およびアクセシビリティ) を組み合わせ、利用可能な最適な入力ソースを自動的に使用します。
NSAppleScript の executeAndReturnError: NSAppleEventDescriptor (「記述子」インスタンスとしましょう) を返すメソッドを使用する場合、[descriptor stringValue] メソッドが何かを返すには、AppleScript で「tell」ブロックの外側で「return someString」を使用する必要があることに注意してください。それ以外の場合は何も返されません。