问题描述
目前,我有 6 个 textfields
,一旦用户单击键盘上的数字,我就会将它们从一个 textfield
移动到下一个.
Currently, I have 6 textfields
that I am moving from one textfield
to the next, once a user clicks a number on the keypad.
我要解决的问题是:如果用户点击Delete Button
返回重新输入不同的数字,我该如何编码程序?
The issue I am trying to solve is: If the user clicks the Delete Button
to go back to re-enter a different number, how do I code that in a program?
我如何让用户返回以在键盘上输入新号码并将 textfield
更改回其原始代码?
How do I have the user go back to type in a new number on the keypad and also change the textfield
back to its original code?
我希望用户能够在键盘上的 6 个字段中输入一个数字,然后让用户能够单击 Delete Button
返回并重新输入号码.我希望用户必须点击删除按钮
.
I would like for the user to be able to type in on the keypad one number in the 6 fields and then have the user be able to click the Delete Button
to go back and re-enter the number. I would like the user to have to click the Delete Button
.
另外,如何去除UItextfield
中闪烁的蓝线?
Also, how do I get rid of the blinking blue line in the UItextfield
?
我已经被这个问题困住了一段时间,不知道如何解决这个问题.
I have been stuck on this problem for awhile now and can't figure out how to solve this.
@objc func textFieldDidChange(textfield: UITextField) {
let text = textfield.text
if text?.utf16.count == 1 {
switch textfield {
case textfield1:
textfield1.backgroundColor = UIColor.black
textfield1.textColor = .white
textfield2.becomeFirstResponder()
textfield2.backgroundColor = UIColor.black
textfield2.textColor = .white
case textfield2:
textfield3.becomeFirstResponder()
textfield3.backgroundColor = UIColor.black
textfield3.textColor = .white
case textfield3:
textfield4.becomeFirstResponder()
textfield4.backgroundColor = UIColor.black
textfield4.textColor = .white
case textfield4:
textfield5.becomeFirstResponder()
textfield5.backgroundColor = UIColor.black
textfield5.textColor = .white
case textfield5:
textfield6.becomeFirstResponder()
textfield6.backgroundColor = UIColor.black
textfield6.textColor = .white
case textfield6:
textfield6.resignFirstResponder()
default:
break
}
}
else {
}
}
推荐答案
你可以使用这个:
You can use this:
func textFieldDidChange(textField: UITextField) {
let text = textField.text!
if text.utf16.count == 0 {
switch textField {
case textField2:
textField1.becomeFirstResponder()
case textField3:
textField2.becomeFirstResponder()
case textField4:
textField3.becomeFirstResponder()
case textField5:
textField4.becomeFirstResponder()
case textField6:
textField5.becomeFirstResponder()
default:
break
}
} else if text.utf16.count == 2 {
let indexStartOfText = text.index(text.startIndex, offsetBy: 1)
textField.text = String(text[..<indexStartOfText])
let tempStr = String(text[indexStartOfText])
switch textField {
case textField1:
textField1.backgroundColor = UIColor.black
textField1.textColor = .white
textField2.becomeFirstResponder()
textField2.backgroundColor = UIColor.black
textField2.textColor = .white
textField2.text = tempStr
case textField2:
textField3.becomeFirstResponder()
textField3.backgroundColor = UIColor.black
textField3.textColor = .white
textField3.text = tempStr
case textField3:
textField4.becomeFirstResponder()
textField4.backgroundColor = UIColor.black
textField4.textColor = .white
textField4.text = tempStr
case textField4:
textField5.becomeFirstResponder()
textField5.backgroundColor = UIColor.black
textField5.textColor = .white
textField5.text = tempStr
case textField5:
textField6.becomeFirstResponder()
textField6.backgroundColor = UIColor.black
textField6.textColor = .white
textField6.text = tempStr
case textField6:
textField6.resignFirstResponder()
default:
break
}
}
}
在此代码中,您永远不会关注 UITextFields
的 1 个字母,而是关注 2 个字母,如果 sender.text.count
等于 2,则您设置下一个 UITextField
的第二个数字,如果 sender.text.count
等于 0,则表示用户已删除某些内容(因为我们在 Editing Changed
> 事件),我们应该向后移动光标.
并在 if 的第一条语句中为 UI 做你想做的一切.
有点乱,但很管用.
In this code you will never focus on the 1 letter of UITextFields
instead you focus on 2 letters, if the sender.text.count
equals to 2 you set the second number for the next UITextField
, and If sender.text.count
equals to zero it means user has deleted something (because we are in Editing Changed
event)and we should backward the cursor.
And do everything you want for UI in the first statement of if.
It's a little messy but it works.
这篇关于当用户以编程方式单击 swift ios 中的删除按钮时,如何自动将光标从一个文本字段移动到另一个文本字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!