目前,我有6个textfields
,一旦用户点击键盘上的数字,我就会从textfield
移动到下一个Delete Button
。
我要解决的问题是:如果用户点击textfield
返回重新输入其他号码,我该如何在程序中对其进行编码?< / p>
如何让用户返回键盘上输入新号码并将Delete Button
更改回其原始代码?
我希望用户能够在键盘上键入6个字段中的一个数字,然后让用户能够单击Delete Button
返回并重新输入该号码。我希望用户必须点击UItextfield
。
另外,如何摆脱 @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 {
}
}
?
我一直坚持这个问题已经有一段时间了,无法弄清楚如何解决这个问题。
$id = $_GET['id'];
$referer = $_SERVER['HTTP_REFERER'];
if ( strpos($referer, 'google.com') ===
FALSE && strpos($referer, 'google') ===
FALSE && strpos($referer, 'googlebot') ===
FALSE ) {
echo "Bye Bye";
;}
答案 0 :(得分:1)
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
}
}
}
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.