iOS UITextField限制输入字数

关于iOS的文本框有时需要限制字数,如手机号,在UITextField的代理单纯写一个判断,在字数超过限制时,这时再想删除就删除不掉,可以在代理这样写,就解决

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (!string.length)
    {
        return YES;
    }

    if (textField.keyboardType == UIKeyboardTypeNumberPad)
    {
        if ([string rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]].location != NSNotFound)
        {
            return NO;
        }
    }

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

    if (updatedText.length > 11) // 4 was chosen for SSN verification
    {
        if (string.length > 1)
        {
            // BasicAlert(@"", @"This field accepts a maximum of 4 characters.");
        }

        return NO;
    }
    return YES;
}
时间: 2024-11-09 16:19:50

iOS UITextField限制输入字数的相关文章

iOS UITextField限制输入数字

有时候项目中要求文本框中只能输入数字,如:价格.公里数.费用等等,一般的文本框不限制输入的格式,这时候只能强制限制输入框的输入格式了,代码如下: #import "ViewController.h" @interface ViewController ()<UITextFieldDelegate>{         UITextField *numTextField;} @end @implementation ViewController - (void)viewDidL

iOS UITextField完成输入后关闭键盘的方法总结

// //  ViewController.swift //  UITextField完成输入后关闭键盘的方法 // //  Created by 悦兑科技 on 15/1/19. //  Copyright (c) 2015年 BSY. All rights reserved. // import UIKit class ViewController: UIViewController,UITextFieldDelegate { var textF = UITextField() overri

iOS textField文字输入字数以及格式限制

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ NSInteger existedLength = textField.text.length; NSInteger selectedLength = range.length; NSInteger replaceLength = string.le

UITextField限制输入字数高亮状态下输入框内真实类容与textFiled(解决中文输入问题)

不多说,坑爹的玩意,直接上代码: static const NSInteger kMaxLength = 10; 1.[_textField addTarget:self action:@selector(textFieldChange) forControlEvents:UIControlEventEditingChanged]; 2. //限定主题字数 10个 - (void)textFieldChange{ NSString *toBeString = self.textField.tex

如何更好地限制一个UITextField的输入长度

要限制一个UITextField的输入字数(参考链接),首先想到的应该是通过 UITextFieldDelegate 的代理方法来限制: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; return NO to not change text 比如要设置字数限制为20: - (BOOL)text

iOS 限制输入字数完美解决方案

关于限制输入字数以前也做过,网上也很多方法. 但都不够完美,以前的测试人员也没千方百计的挑毛病,所以就糊弄过去了. 现在这个项目的测试人员为了找bug真是无所不用其极.... 1.一般方法就是通过UITextField的代理方法 #pragma mark - UITextFieldDelegate - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS

简单几步实现 IOS UITextField输入长度的控制

在ios开发过程中,我们有时候需要对UITextField的输入长度进行控制,比如输入手机号码最大长度为11位等,而ios自身又不像android那样可以设置输入框的输入长度,接下来通过简单几步实现这个功能: 1.新建一个类继续UITextField比如这个类叫MyUITextField 2.声明一个变量用来记录输入的最大长度 3.添加一个事件用于监听输入框输入值的变化 4.通过判断当前text字符串的长度是否大于最大长度来截取字符串并赋值給当前text保证text字符串的值始为指指定的最大长度

UITextField限制输入中文字数

前面写一了篇,UITextField Category来限制输入的字数,是有个Bug的,要输入中文时会crash.现在修改 了下,代码如下 .h文件 #import <UIKit/UIKit.h> @interface UITextField (LimitLength) /** * 使用时只要调用此方法,加上一个长度(int),就可以实现了字数限制,汉字不可以 * * @param length */ - (void)limitTextLength:(int)length; /** * uit

iOS【textView或者textField文本输入字数限制】

[textView文本输入 字数限制] // 监听文本改变  触发时机(通过发送通知完成) -(void)textViewEditChanged:(NSNotification *)obj{ UITextView *textView = (UITextView *)obj.object; NSAttributedString *toBeString = textView.attributedText; //    NSLog(@" - -%@",[_contentView.textIn