Ios 在文本字段中分配和辞职第一响应者
我实现了一个OTP功能,如本文所示,但在以下几行中出现了一个错误,因为Swift 3不推荐使用它们Ios 在文本字段中分配和辞职第一响应者,ios,iphone,swift3,Ios,Iphone,Swift3,我实现了一个OTP功能,如本文所示,但在以下几行中出现了一个错误,因为Swift 3不推荐使用它们 let start = text!.startIndex.advancedBy(range.location) let end = start.advancedBy(range.length) 解决方法是什么?如果要实现otp功能。下面是您可以使用的代码。 每个文本字段都有标记,根据标记值,您可以轻松响应下一个文本字段 extension YOUR_VC:UITextFieldD
let start = text!.startIndex.advancedBy(range.location)
let end = start.advancedBy(range.length)
解决方法是什么?如果要实现otp功能。下面是您可以使用的代码。 每个文本字段都有标记,根据标记值,您可以轻松响应下一个文本字段
extension YOUR_VC:UITextFieldDelegate{
func textFieldDidBeginEditing(_ textField: UITextField) {
// to make text field empty
textField.text = ""
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if(string.length == 1){
textField.text = string
textField.resignFirstResponder();
}
return false
}
func textFieldDidEndEditing(_ textField: UITextField) {
// for making next text field first responder after a character is entered in previous textfield
switch textField.tag {
case 1:
otpTextTwo.becomeFirstResponder()
case 2:
otpTextThree.becomeFirstResponder()
case 3:
otpTextFour.becomeFirstResponder()
case 4:
otpTextFive.becomeFirstResponder()
case 5:
otpTextSix.becomeFirstResponder()
case 6:
// self.doneFecthingOtp()
default:
//print("NOt case")
}
} }
希望这会有所帮助。您应该在swift3中这样写:
let start = text?.index((text?.startIndex)!, offsetBy: range.location)
let end = text?.index(start!, offsetBy: range.length)
let indexRange = text?[start! ..< end!]
let start=text?.index((text?.startIndex)!,偏移量:range.location)
让结束=文本?.index(开始!,偏移量:range.length)
让indexRange=文本?[开始!.<结束!]
添加有问题的错误。使用[textField resignFirstResponder]、[textField becomeFirstResponder]是这些方法,但在使用这些方法时会出现什么错误?“advancedBy”不可用:若要将索引提前n步,请在生成索引的CharacterView实例上调用“index(\uOfSetBy:)”。