さて、私はこの質問に欠けている明らかな何かがあるように感じます。コード全体でmakeFirstResponderを使用して、textField 1から2、2、3などに移動しました。これは希望どおりに機能しているようですが、新しいビューが読み込まれるときに、カーソルをtextField1に置きます。ただし、次のコードは、ロード時にカーソルをtextField1に配置しません。
- (void) awakeFromNib{
[[[self view] window] makeFirstResponder:textField1];
}
setInitialFirstResponderも試しましたが、効果はありませんでした(それが正しいとは思いません)。それは、awakeFromNibメソッドに含まれているためですか。誰かが私が欠けているものを教えてもらえますか?前もって感謝します。
編集-私の解決策は受け入れられた答えとわずかに異なっていたので、私は自分の実装を投稿すると思いました。最初のレスポンダーを設定したいビューは後で追加されたサブビューであったため(アプリケーションウィザードの2番目の画面を考えてください)、単にsetCursorToFirstTextFieldメソッドを追加しました。
- (void) setCursorToFirstTextField {
[[[self view] window] makeFirstResponder:textField1];
}
また、元のウィンドウのカスタムビューにサブビューを追加した後で、必ず呼び出してください。