欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

UITextField使用的一些细节

程序员文章站 2022-07-12 12:23:35
...

UITextField使用的一些细节

UITextField使用的一些细节

这篇博文是我自己使用UITextField的一些总结,并没有太多营养,并会持续更新。

2014.9.15

--------------------------------------------------------------------------------------------------------------------------------------

源码:

//
//  RootViewController.m
//  UITextField
//
//  Created by YouXianMing on 14-9-15.
//  Copyright (c) 2014年 YouXianMing. All rights reserved.
//

#import "RootViewController.h"

@interface RootViewController ()<UITextFieldDelegate>

@property (nonatomic, strong) UITextField *textField;

@end

@implementation RootViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    _textField                      = [[UITextField alloc] initWithFrame:CGRectMake(10,  80, 300, 40)];
    _textField.layer.borderWidth    = 1.f;
    _textField.layer.borderColor    = [UIColor redColor].CGColor;
    _textField.backgroundColor      = [UIColor whiteColor];
    _textField.textAlignment        = kCTTextAlignmentLeft;    // 左对齐
    _textField.delegate             = self ;
    _textField.keyboardType         = UIKeyboardTypeNumberPad; // 数字键盘
    _textField.placeholder          = @"请输入4位验证码";
    _textField.clearsOnBeginEditing = YES;
    
    
    
    // 空出左侧边缘空隙(通过添加一个view来实现)
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10,
                                                            CGRectGetHeight(_textField.bounds))];
    _textField.leftView     = view;
    _textField.leftViewMode = UITextFieldViewModeAlways;
    
    [self.view addSubview:_textField];
    
    // 添加手势
    [self addGesture];
}

- (void)addGesture
{
    // 手势
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)];
    [self.view addGestureRecognizer:tap];
}

// 限制输入长度
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (range.location >= 4)
    {
        return NO;
    }
    else
    {
        return YES;
    }
}

- (void)tapGesture:(UITapGestureRecognizer *)tap
{
    // 取消第一响应状态
    [_textField resignFirstResponder];
}

@end

效果:

UITextField使用的一些细节

左侧空出空隙

UITextField使用的一些细节

限制输入长度

UITextField使用的一些细节

--------------------------------------------------------------------------------------------------------------------------------------