美文网首页
UITextField限制字数,忽略大小写

UITextField限制字数,忽略大小写

作者: _wxx | 来源:发表于2016-06-30 17:55 被阅读22次

//限制UITextField只能输入字母和数字
_loadCodeTF.keyboardType = UIKeyboardTypeASCIICapable;
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
        NSCharacterSet *cs;
        cs = [[NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"] invertedSet];
        
        NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; //按cs分离出数组,数组按@""分离出字符串
        
        BOOL canChange = [string isEqualToString:filtered];
        
        return  canChange;
}


//在UITextField发生change的时候调用,限制字数
if (sender.text.length > 11) {
            sender.text = [sender.text substringToIndex:11];
        }


//控制清除按钮的位置
-(CGRect)clearButtonRectForBounds:(CGRect)bounds
{
   return CGRectMake(bounds.origin.x + bounds.size.width - 50, bounds.origin.y + bounds.size.height -20, 16, 16);
}


//控制placeHolder的位置,左右缩20
-(CGRect)placeholderRectForBounds:(CGRect)bounds
{
    
    //return CGRectInset(bounds, 20, 0);
   CGRect inset = CGRectMake(bounds.origin.x+100, bounds.origin.y, bounds.size.width -10, bounds.size.height);//更好理解些
   return inset;
}
//控制显示文本的位置
-(CGRect)textRectForBounds:(CGRect)bounds
{
    //return CGRectInset(bounds, 50, 0);
    CGRect inset = CGRectMake(bounds.origin.x+190, bounds.origin.y, bounds.size.width -10, bounds.size.height);//更好理解些
    
    return inset;

}
//控制编辑文本的位置
-(CGRect)editingRectForBounds:(CGRect)bounds
{
    //return CGRectInset( bounds, 10 , 0 );
    
   CGRect inset = CGRectMake(bounds.origin.x +10, bounds.origin.y, bounds.size.width -10, bounds.size.height);
   return inset;
}
//控制左视图位置
- (CGRect)leftViewRectForBounds:(CGRect)bounds
{
   CGRect inset = CGRectMake(bounds.origin.x +10, bounds.origin.y, bounds.size.width-250, bounds.size.height);
   return inset;
    //return CGRectInset(bounds,50,0);
}

//控制placeHolder的颜色、字体
- (void)drawPlaceholderInRect:(CGRect)rect
{
    //CGContextRef context = UIGraphicsGetCurrentContext();
    //CGContextSetFillColorWithColor(context, [UIColor yellowColor].CGColor);
    [[UIColororangeColor] setFill];
    
    [[selfplaceholder] drawInRect:rectwithFont:[UIFontsystemFontOfSize:20]];
}

 
//下面是使用CustomTextField的代码,可放在viewDidLoad等方法中
    _textField = [[CustomTextField alloc] initWithFrame:CGRectMake(20, 150, 280, 30)];
    _textField.placeholder = @"请输入帐号信息";
    _textField.borderStyle = UITextBorderStyleRoundedRect;
    _textField.textAlignment = UITextAlignmentLeft;
    _textField.delegate = self;
    _textField.clearButtonMode = UITextFieldViewModeWhileEditing;
    _textField.text = @"aa";
    UIImageView *imgv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon-iwant-2.png"]];
    _textField.leftView = imgv;
    _textField.leftViewMode = UITextFieldViewModeAlways;
    [self.view addSubview:_textField];

相关文章

网友评论

      本文标题:UITextField限制字数,忽略大小写

      本文链接:https://www.haomeiwen.com/subject/klwxjttx.html