2
私はピンコードに対してそれぞれ1桁の4つのテキストフィールドを受け取ります。数字を入力するたびに、自動的に2桁目の別のテキストフィールドに移動し、4桁目の最後のテキストフィールドに到達します。これは正常に動作します。ただし、番号パッドの削除(x)ボタンをクリックして番号を変更すると、4番目のテキストフィールドにない限り数字は削除されません。その後、3番目の2番目のテキストフィールド削除(x)ボタンが押されている限りです。ここキーボードのxボタンが押されている限り、もう一方のテキストフィールドから値を削除するには
はコード
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
// On inputing value to textfield
if ((textField.text?.count)! < 1 && string.count > 0){
if(textField == pinOne){
pinTwo.becomeFirstResponder()
}
if(textField == pinTwo){
pinThree.becomeFirstResponder()
}
if(textField == pinThree){
pinFour.becomeFirstResponder()
}
textField.text = string
if let actualText = textField.text {
let pinEntered: Character = Character(actualText)
concatString += String(pinEntered)
if concatString.count == 4 {
checkPin()
}
}
return false
} else if ((textField.text?.count)! >= 1 && string.count == 0){
// On Deleting value from Textfield
if(textField == pinTwo){
pinOne.becomeFirstResponder()
}
if(textField == pinThree){
pinTwo.becomeFirstResponder()
}
if(textField == pinFour) {
pinThree.becomeFirstResponder()
}
textField.text = ""
return false
}
}
は助けてくださいます。ありがとうございました!
iは同じfunctionaliyを実装するためにhttps://github.com/varunpm1/VPMOTPViewライブラリを使用していました。それはあなたがそれを使いたい場合に備えて、様々なオプションを持っています。 @WasimMalek、ありがとう。 –
私はこれを試してみる。 – TSM
最初の3つのピンフィールドに入っているとき、この方法をステップオーバーするとどうなりますか?そして、私はあなたの 'becomeFirstResponder'テキストをクリアした後に移動しようと思います。 – zcui93