【Swift】一定数の文字を打つと、自動的に次のTextFieldに移行する方法
どうも、しゅんやです。
例えば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("終了!")
}
}
}
ではさよなら!!!
Author And Source
この問題について(【Swift】一定数の文字を打つと、自動的に次のTextFieldに移行する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/shunya813/items/33cc6187a3fd0e769b34著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .