読者です 読者をやめる 読者になる 読者になる

日々精進

新しく学んだことを書き留めていきます

NSTextFieldにフォーカスを当てる

mac

NSViewのサブクラスを作り、そこで以下を実行してもNSTextFieldにフォーカスが当たらず困った。

[self.window makeFirstResponder:self.inputTextField]; // テキスト入力欄にフォーカスを当てる

原因はself.windowがnilであること。
Viewのオブジェクトを作ってからNSWindowのviewにaddSubViewするので、初期化処理時点ではwindowの下に入っていないのでnilになる。
viewDidMoveToWindow内で呼ぶようにすると直った。
参考:CocoaDev » Makingnstextfieldactive