みんな!私はウィンドウのツールバーにNSSearchFieldを持っています。検索フィールドに最初のレスポンダーを設定するようにウィンドウに指示します:それは機能します。さて、最初のレスポンダが何であるか教えてもらうと、検索フィールドにフォーカスがあっても検索フィールドではありません。 検索フィールドをウィンドウの最初のレスポンダとして設定する方法はありますか?ミスマッチ?最初の応答者としてNSSearchField
ありがとうございました
みんな!私はウィンドウのツールバーにNSSearchFieldを持っています。検索フィールドに最初のレスポンダーを設定するようにウィンドウに指示します:それは機能します。さて、最初のレスポンダが何であるか教えてもらうと、検索フィールドにフォーカスがあっても検索フィールドではありません。 検索フィールドをウィンドウの最初のレスポンダとして設定する方法はありますか?ミスマッチ?最初の応答者としてNSSearchField
ありがとうございました
いいえ、または少なくとも簡単にはありません。検索フィールドや単純なテキストフィールドにキーボードフォーカスがある場合、実際には最初のレスポンダではありません。 NSTextField
(NSSearchField
のスーパークラス)のインスタンスが最初のレスポンダになるように頼まれた場合、ウインドウは「フィールドエディタ」を要求します。これは編集専用に使用される別のテキストフィールドです。このエディタはテキストフィールド内に配置され、実際のファーストレスポンダとして設定されます。
テキストフィールドまたは検索フィールドを取得するには、最初のレスポンダでsuperview
を使用してビュー階層を上げることができます。 (私はフィールドエディタの直接スーパービューだと思う)実際のテキストフィールドもフィールドエディタの代理人として設定されていることは間違いないと思う。
フィールドエディタの詳細については、NSWindow class referenceから入手できます。
私にとっては、少なくともフィールドエディタのスーパービューのスーパービューです。フィールドエディタの直接スーパービューは、いくつかのプライベートクリップビュークラスです。 – Vervious