どうも、しゅんやです。
例えばSNSを始める時などに、まあ個人情報を入力する事がよくあると思います。
その時にね、なんか例えば電話番号とかを打つ時に、最初の3文字を打った途端、勝手に次の入力欄に移ってくれたみたいな事があると思います。
あれ、入力する側としては楽ですよね。
なので今回は、それを実装するわけです。
ではいきましょう!
①まずは下準備
こんな感じで、TextFieldを3つ用意して、その間に線(UILabel)を入れて、まあ電話番号の入力するときのやつっぽいのを作ってください。
んで、TextFieldだけコードに繋ぎましょう。
②ではコード書きます
めっちゃ簡単です。
次のコードを書くだけです。
import UIKit
class ViewController: UIViewController {
//StoryBoardと繋いだTextField達
@IBOutlet weak var textField : UITextField!
@IBOutlet weak var textField2: UITextField!
@IBOutlet weak var textField3: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
//監視
NotificationCenter.default.addObserver(self, selector: ♯selector(textFieldDidChange(_:)), name: UITextField.textDidChangeNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: ♯selector(textFieldDidChange2(_:)), name: UITextField.textDidChangeNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: ♯selector(textFieldDidChange3(_:)), name: UITextField.textDidChangeNotification, object: nil)
}
@objc func textFieldDidChange(_ notification:NSNotification){
//最初のTextFieldの文字数が3だったら
if textField.text!.count == 3{
textField.resignFirstResponder()//閉じる
textField2.becomeFirstResponder()//ここで次に移行
}
}
@objc func textFieldDidChange2(_ notification:NSNotification){
//2つ目のTextFieldの文字数が4だったら
if textField2.text!.count == 4{
textField2.resignFirstResponder()//閉じる
textField3.becomeFirstResponder()//次に移行
}
}
@objc func textFieldDidChange3(_ notification:NSNotification){
//最後のTextFieldの文字数が4だったら
if textField3.text!.count == 4{
textField3.resignFirstResponder()//閉じる
print("終了!")
}
}
}
ではさよなら!!!