iOS开发中如何设置textfield输入长度并且仅仅只能输入数字
2016-10-18 17:56
603 查看
网上有很多限制textField输入长度方法和限制输入内容的方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入长度既又限制输入内容的方法.
我所采用的并不是监听方法而是最不同的代理实现方法,为什么不使用监听呢???
当你看到这篇文章很有可能视是为一件事所苦恼那就是使用监听限制输入长度后不能够完美的控制输入内容.
举一个简单的例子:
你要限制输入长度为6个字符,当你输入6个字符后监听的确可以很好的控制不让你继续输入,但是问题也随之而来,当你把光标移动到输入内容中间的位置后,你是可以继续输入的这种输入让人很苦恼因为当你输入后你的光标会移动到最后,并且限制你继续输入,但是你刚刚输入的内荣却保留在了文本中间,这很不符合要求.
因此在这里采用代理可以很好的实现我们想要的效果,仅仅几行代码希望给你带来帮助.
我所采用的并不是监听方法而是最不同的代理实现方法,为什么不使用监听呢???
当你看到这篇文章很有可能视是为一件事所苦恼那就是使用监听限制输入长度后不能够完美的控制输入内容.
举一个简单的例子:
你要限制输入长度为6个字符,当你输入6个字符后监听的确可以很好的控制不让你继续输入,但是问题也随之而来,当你把光标移动到输入内容中间的位置后,你是可以继续输入的这种输入让人很苦恼因为当你输入后你的光标会移动到最后,并且限制你继续输入,但是你刚刚输入的内荣却保留在了文本中间,这很不符合要求.
因此在这里采用代理可以很好的实现我们想要的效果,仅仅几行代码希望给你带来帮助.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if (textField == self.tf) { //这里的if时候为了获取删除操作,如果没有次if会造成当达到字数限制后删除键也不能使用的后果. if (range.length == 1 && string.length == 0) { return YES; } //so easy else if (self.tf.text.length >= 6) { self.tf.text = [textField.text substringToIndex:6]; return NO; } } return [self validateNumber:string]; } - (BOOL)validateNumber:(NSString*)number { BOOL res = YES; NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"]; int i = 0; while (i < number.length) { NSString * string = [number substringWithRange:NSMakeRange(i, 1)]; NSRange range = [string rangeOfCharacterFromSet:tmpSet]; if (range.length == 0) { res = NO; break; } i++; } return res; }这段代码既实现了输入内容仅为数字同时限制了输入长度不可以超过6
相关文章推荐
- IOS中TextField中支付只能输入数字,并且小数点后最多输入两位
- iOS TextField输入限制(限制长度、只能输入数字,只能输入数字字母……)
- ios设置textField只能输入数字用于电话号码
- XZ_iOS之实现textField限制只能输入数字,无论是第三方键盘还是自带键盘
- android text设置只能输入数字并限制长度
- iOS开发判断TextField中输入的数字为小数点后两位
- IOS中如何限制TextField中输入的类型以及长度
- IOS开发中限制TextField输入的类型及长度的方法
- 设置键盘只能输入数字( phoneNumTextField.keyboardType = UIKeyboardTypeNumberPad;)
- iOS 代码限制textField的输入长度并且删除按钮还得有效
- EditText设置弹出数字键盘,并且只能输入数字和.
- iOS中TextField只能输入数字且小数点后最多输入两位
- ios textField限制只能输入一定长度的字符
- 限制textfield动态只能输入数字和字母且有长度限制
- textfield设置只能输入的字符长度
- Android设置EditText只能输入数字,不包含小数点
- textField中只能输入数字
- Android 限制EditText只能输入数字、限制输入类型、限制输入长度的小技巧
- ios textfield限制中文输入长度
- 如何让textField输入框 限制输入字数的同时,还只让输入数字和字母