LHPhoneTextField,定制手机号的输入

前言

在开发中经常遇到各种需要输入手机号的地方,而每遇到一个地方就要专门写一套代码来验证手机号输入的位数及开始几位是否正确,有时为了显示的好看明显,还需要把手机号进行3-4-4这种方式显示,现在特写了LHPhoneTextFiled来支持这种特定的需求,非常感谢phoneTextField提供非常好的思路

1、 使用LHPHoneTextField非常简单,支持设置3-4-4中间的这个分隔符lh_seperatorText,设置不标准手机字符串自动标准显示
2、而用lh_text来设置默认显示的手机号
3、而用lh_text来获取的手机号时标准的全数字手机号,不需要进行任何判断,使用非常简单,效果如下图:
4、提供一个方法判断手机号是否是标准手机号lh_IsValidatePhone
5、提供方法直接拨打电话lh_callCurrentPhone

LHPhoneTextField.gif

使用方式

因为本身是继承自UITextField,所以使用起来是一样的,唯一的区别是使用lh_seperatorText来设置3-4-4的分隔符,默认分隔符是-,
要设置默认的手机号时使用lh_text设置要显示的手机号,而要获取完整的全数字的手机号也需要使用lh_text获取,具体使用如下:

@interface LHPhoneTextFieldSampleViewController ()
@property (nonatomic,strong) LHPhoneTextField * phoneTextField2;
@end

@implementation LHPhoneTextFieldSampleViewController
- (void)viewDidLoad {
self.phoneTextField2 = [[LHPhoneTextField alloc] initWithFrame:CGRectMake(90, 175, 200, 30)];
    self.phoneTextField2.layer.masksToBounds = YES;
    self.phoneTextField2.layer.borderColor = [UIColor redColor].CGColor;
    self.phoneTextField2.layer.borderWidth = 1;
    self.phoneTextField2.clearButtonMode = UITextFieldViewModeWhileEditing;
    self.phoneTextField2.placeholder = @"请输入手机号";
    self.phoneTextField2.lh_seperatorText = @" ";
    
    [self.view addSubview:self.phoneTextField2];
    
    
    // 值发现变化时调用
    [self.phoneTextField2 addTarget:self action:@selector(textFild_textValueChange2) forControlEvents:UIControlEventValueChanged];
    // 只有注册了这个通知,valueChange才会改变
    //UITextFieldTextDidChangeNotification通知事件
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFild_textValueChange2) name:UITextFieldTextDidChangeNotification object:nil];
    
    // 默认手机号,不限制格式
    self.phoneTextField2.lh_text = @"131-12339323";
}
@end

具体demo:LH.LoveKit

知识点

1、对代理进行拦截二次触发
2、使用API sendActionsForControlEvents主动触发某个事件的所有target-action
3、获取UITextField的光标及对光标的移动

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,350评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,752评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 7,224评论 0 17
  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 2,822评论 2 50
  • 冷沁的早晨,窗外雪势依旧不减。 经过一夜的渲染,拥挤的都市竟然多出了国画中那大片的留白。眼前这世界,由熟悉开始变得...
    河豚太一阅读 347评论 0 0

友情链接更多精彩内容