🦅
【Swift5/Xcode13】TextFieldでReturnを押下すると次の入力フォームにフォーカスする
なぜ実装するか
例えば氏名,電話番号,住所
など複数の入力がある場合、わざわざTextField
をタップする仕組みになるよりは、キーボードのReturn(改行)
だけで操作できる方がユーザリビティだからです。
実装
func settingTextFieldDelegate() {
let createViewView = self.view as! CreateViewView
createViewView.folderNameLabel.delegate = self
createViewView.deckNameLabel.delegate = self
createViewView.deckCodeLabel.delegate = self
}
extension CreateViewViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
//リターンキーが押された時に実行される
// 今フォーカスが当たっているテキストボックスからフォーカスを外す
textField.resignFirstResponder()
// 次のTag番号を持っているテキストボックスがあれば、フォーカスする
let nextTag = textField.tag + 1
if let nextTextField = self.view.viewWithTag(nextTag) {
nextTextField.becomeFirstResponder()
}
return true
}
}
実装の際に、xibファイル上でtag
を以下のように設定します。
Discussion