1

NSComboBoxがファーストレスポンダーステータスを失い、「resignFirstResponder」を取得したときに何らかの処理を行おうとしますが、コンボボックスのテキストの実装に使用された内部NSTextViewではなく、コンボボックスが実際にファーストレスポンダーステータスを失った場合にのみ処理を行う必要があります。それ自体がファーストレスポンダーのステータスを取得します。

ファーストレスポンダーのステータスがNSComboBoxからその内部のNSTextViewに移動したことを検出する公式の方法はありますか?そのNSTextViewへのポインタを取得できますか?そして多分その代理人を設定しますか?

よろしく

4

1 に答える 1

1

実際、「内部NSTextView」はありません。NSWindowごとにそのようなNSTextViewが1つあり、それを必要とする編集コントロール(テキスト、コンボボックス)に親が変更されます。これは、いわゆる「フィールドエディター」です。windowWillReturnFieldEditorちなみにNSWindowデリゲートでオーバーライドする可能性があります。

実際の答えはbecomeFirstResponder、コンボで検出してからで検出できるということtextDidEndEditingです。

参照:Appleデベロッパドキュメントの「テキスト編集プログラミングガイド」の「フィールドエディタの操作」。

于 2012-06-13T11:58:26.420 に答える