0

彼ら!ウィンドウのツールバーに NSSearchField があります。ファーストレスポンダーを検索フィールドに設定するようにウィンドウに指示します。これは機能します。今:ウィンドウにファーストレスポンダーを教えてもらうと、検索フィールドにフォーカスがあっても検索フィールドではありません...この不一致なしで検索フィールドをウィンドウのファーストレスポンダーとして設定する方法はありますか?

ありがとうございました

4

1 に答える 1

3

いいえ、少なくとも簡単ではありません。検索フィールドまたは単純なテキスト フィールドにキーボード フォーカスがある場合、それは実際にはファーストレスポンダではありません。NSTextField(のスーパークラス) のインスタンスがNSSearchFieldファーストレスポンダになるように求められると、編集専用に使用される別のテキスト フィールドである「フィールド エディタ」をウィンドウに要求します。このエディターはテキスト フィールド内に配置され、実際のファーストレスポンダーとして設定されます。

superviewテキスト フィールドまたは検索フィールドを取得するには、ファーストレスポンダを使用してビュー階層を上に移動できます。(フィールド エディターの直接のスーパービューだと思います。) 実際のテキスト フィールドもフィールド エディターのデリゲートとして設定されていると確信しているので、そのようにすることもできますが、どこで読んだか覚えていません。

フィールド エディタの詳細については、NSWindow クラス リファレンスを参照してください。

于 2012-04-02T21:53:55.753 に答える