彼ら!ウィンドウのツールバーに NSSearchField があります。ファーストレスポンダーを検索フィールドに設定するようにウィンドウに指示します。これは機能します。今:ウィンドウにファーストレスポンダーを教えてもらうと、検索フィールドにフォーカスがあっても検索フィールドではありません...この不一致なしで検索フィールドをウィンドウのファーストレスポンダーとして設定する方法はありますか?
ありがとうございました
彼ら!ウィンドウのツールバーに NSSearchField があります。ファーストレスポンダーを検索フィールドに設定するようにウィンドウに指示します。これは機能します。今:ウィンドウにファーストレスポンダーを教えてもらうと、検索フィールドにフォーカスがあっても検索フィールドではありません...この不一致なしで検索フィールドをウィンドウのファーストレスポンダーとして設定する方法はありますか?
ありがとうございました
いいえ、少なくとも簡単ではありません。検索フィールドまたは単純なテキスト フィールドにキーボード フォーカスがある場合、それは実際にはファーストレスポンダではありません。NSTextField
(のスーパークラス) のインスタンスがNSSearchField
ファーストレスポンダになるように求められると、編集専用に使用される別のテキスト フィールドである「フィールド エディタ」をウィンドウに要求します。このエディターはテキスト フィールド内に配置され、実際のファーストレスポンダーとして設定されます。
superview
テキスト フィールドまたは検索フィールドを取得するには、ファーストレスポンダを使用してビュー階層を上に移動できます。(フィールド エディターの直接のスーパービューだと思います。) 実際のテキスト フィールドもフィールド エディターのデリゲートとして設定されていると確信しているので、そのようにすることもできますが、どこで読んだか覚えていません。
フィールド エディタの詳細については、NSWindow クラス リファレンスを参照してください。