UITextField - 输入两位数后关闭键盘

时间:2011-11-20 18:26:11

标签: iphone objective-c cocoa-touch uitextfield

我有一个UITextField,它使用数字键盘来输入。当两个数字输入到textField中时,如何解除它/运行方法调用?

3 个答案:

答案 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
}