0

我想限制textFieldIOS应用程序中的字符。我尝试了 Stack Overflow 中给出的所有方法,所以我问了这个问题。

在这里,我使用了一个标签(安全代码)和一个文本字段(5 个字符)。

我在viewcontroller.m文件中给出了以下代码,但没有工作。

   myTextField.delegate = self

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{
   NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];

   return !([newString length] > 5);
}
4

2 回答 2

7

ViewController.h中,<UITextFieldDelegate>应该添加。

在您的 viewDidLoad 中,myTextField.delegate = self应该添加。

然后,限制字符数:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range     replacementString:(NSString *)string
{
     if (textField.text.length >= 5 && range.length == 0)
        return NO;
     return YES;
}

为我工作。尝试一下。

编辑:

另一方面,您的代码也应该可以正常工作。再次检查您的代码。

于 2013-02-13T05:46:08.163 回答
0

迅速:添加UITextFieldDelegateextension. 它使您的工作更轻松。

不要忘记delegateviewDidLoad.

override func viewDidLoad() {
    super.viewDidLoad()

    // set the delegate
    textField.delegate = self
}

extension ViewController:UITextFieldDelegate {
  func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    if textField.text?.characters.count >= 5 && range.length == 0 {
      return false
    }
    return true
  }
}

您可以找到一个详细的示例,如何通过count和限制文本字段widthgithub 源

于 2015-11-22T16:01:17.030 回答