我有一个UITextField,它使用数字键盘来输入。当两个数字输入到textField中时,如何解除它/运行方法调用?
答案 0 :(得分:2)
-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
int count = [textField.text length];
if(count>=2){
[textField resignFirstResponder];
}
return YES;
}
答案 1 :(得分:0)
使用文本字段委托方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
在这里,您可以确定对文本字段的建议更改 - 如果更改是应添加第二个字符,您可以重新签署第一个响应者。您还应该返回YES或直接设置文本字段的值,以便更新第二个字符。
评论中的好点 - 这可能不是最好的用户体验!
答案 2 :(得分:0)
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let maxLength = 6
let currentText = textField.text ?? ""
guard let range = Range(range, in: currentText) else { return false }
let newText = currentText.replacingCharacters(in: range, with: string)
if newText.count == maxLength {
view.endEditing(true)
}
return newText.count <= maxLength
}