开发者社区> 问答> 正文

关于iOS 限制 textFiled输入 长度 (我输入的的是电话号)

不 走 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string方法

(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
 { //string就是此时输入的那个字符 textField就是此时正在输入的那个输入框 返回YES就是可以改变输入框的值 NO相反

if ([string isEqualToString:@"\n"]) //按会车可以改变
 {
 return YES;
 }

NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string]; //得到输入框的内容

if (self.textFieldY == textField) //判断是否时我们想要限定的那个输入框
 {
 if ([toBeString length] > 1) { //如果输入框内容大于20则弹出警告
 textField.text = [toBeString substringToIndex:20];
 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"超过最大字数不能输入了" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
 [alert show];
 return NO;
 }
 }
 return YES;
 }

展开
收起
爵霸 2016-03-13 09:51:02 2273 0
1 条回答
写回答
取消 提交回答
  • 这里有个自己写的demo,可以参考一下

     - (IBAction)onTextFieldEditingChanged:(id)sender {
        NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage];
        NSRange range = NSMakeRange(0, Max_Character_Num);
        if ([lang isEqualToString:@"zh-Hans"]) {//如果输入的时中文
            UITextRange *selectedRange = [self.tagNameTextField markedTextRange];
            UITextPosition *position = [self.tagNameTextField positionFromPosition:selectedRange.start offset:0];
            if (!position) {
                if (self.tagNameTextField.text.length > Max_Character_Num) {
    //                self.tagNameTextField.text = [self.tagNameTextField.text substringFrom:0 to:Max_Character_Num];
    
                    self.tagNameTextField.text = [self.tagNameTextField.text substringWithRange:range];
                }
            }
        }else{
            if (self.tagNameTextField.text.length > Max_Character_Num) {
                self.tagNameTextField.text = [self.tagNameTextField.text substringWithRange:range];
            }
        }
    }
    2019-07-17 19:01:52
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载