0

私はよく Safari を開いて、Xcode でプロジェクトに取り組んでおり、Stack Overflow などで調べています。何度か、Safari の Web アドレス/検索エンジン フィールドで何かを検索しました。入力した単語から 1 つか 2 つの単語を入力すると、入力していなくても、Xcode の検索ナビゲーターに入力されます。そこにあります。毎回ではありません。

編集: 検索ナビゲーターから入力されたテキストは、Safari でもポップアップ表示されます。

これは何の問題も引き起こしませんが、それが選んだ単語には関連性がないようで、なぜこの奇妙なことが起こっているのか興味があります.

Xcode 4.6.3、Safari 6.0.3、および Mac OS X 10.8.4 を実行しています

これはグリッチですか?中途半端な機能?

4

1 に答える 1

1

表示されているのは、動作中の OS X グローバル検索ペーストボードです。プライベート クラス NSFindPanel が呼び出される場所ならどこでも (通常はテキスト フィールドと組み合わせて)、このグローバル ペーストボードが呼び出され、最新のクエリを含む「検索」メタデータの単一の中心的な場所を提供します。

検索ペーストボードを介して検索文字列を通信することに加えて、NSTextView の標準の検索パネルは、大文字と小文字の区別や部分文字列一致オプションなどの検索オプション メタデータも通信します。このメタデータは、グローバル検索ペーストボードの NSFindPanelSearchOptionsPboardType 値としてプロパティ リストに保存されます。そのため、サード パーティ アプリケーションは、多くのサード パーティ アプリケーションの [検索] パネルに共通するさまざまな検索オプションをサポートするために、必要に応じて追加のメタデータを通信するために、このプロパティ リストに追加のキーを格納する場合があります。

developer.apple.com の NSTextField ドキュメントのセクション「Find Panel Search Metadata」から

あるアプリで検索を実行した場合、別のアプリで同じ検索を実行する可能性がかなり高いため、グローバル検索ペーストボードは検索間の同期メカニズムとして機能するという設計意図があると思います異なるアプリのフィールド。他のオペレーティング システムから来ている人にとっては、アプリの検索機能が独自のプロセスに非常にサンドボックス化されている場合、これは非常に奇妙な動作に見えるでしょう。最新の検索語は、このグローバル共有ではなく、アプリ固有の検索語です。スペース。

レプリケーションに関する限り、テキストをクリップボードにコピーしてから検索フィールドに貼り付けることで、報告された動作をいつでもトリガーできます。アプリケーションからアプリケーションに切り替えると、グローバル検索ペーストボードが検索 NSFindPanel を更新します。これが、Xcode と Safari の間で双方向のやり取りが見られる理由です。どちらも NSFindPanel を使用し、グローバル検索ペーストボードを参照し、次にフォーカスを取得したときに同期します。

残念ながら、これはユーザーが構成できる種類の設定ではありません。すべての NSFindPanel にこの動作があり、動作を変更するために設定できるシステム環境設定またはデフォルト設定はありません。bugreport.apple.com で Apple に問題を報告することを検討してください。

于 2013-08-10T06:37:33.073 に答える