您的位置:首页 > 移动开发 > IOS开发

iOS如何限制textField的输入格式

2016-10-27 17:15 417 查看

当你在写一个应用,里面有显示限制某些金额的时候(例如金额:9999.99这样的),可以通过以下代码来实现

代码块

#pragma mark - 键盘监听方法
- (void)UIControlEventEditingChanged:(UITextField *)textField {
//限制不能输入两个小数点
NSArray *arr = [textField.text componentsSeparatedByString:@".”];
if (arr.count > 2)
{
textField.text = _previousTextFieldContent;
textField.selectedTextRange = _previousSelection;
return;
}
NSString *amount = textField.text;
NSInteger digit;
//判断是否包含小数点
if([amount rangeOfString:@"."].location != NSNotFound) {
NSArray *arr = [amount componentsSeparatedByString:@"."];
NSString *intNum = arr[0];
NSString *floatNum = arr[1];
//金额的整数位数
digit = intNum.length;
//小数的位数
NSInteger floatDigit = floatNum.length;
if (digit > 7) {
textField.text = _previousTextFieldContent;
textField.selectedTextRange = _previousSelection;
return;
}
if (floatDigit > 2) {
textField.text = _previousTextFieldContent;
textField.selectedTextRange = _previousSelection;
return;
}
}
else {
//不包含小数点
digit = amount.length;
if (digit > 7) {
textField.text = _previousTextFieldContent;
textField.selectedTextRange = _previousSelection;
return;
}
}
return;
}

#pragma mark - textFieldDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
_previousTextFieldContent = textField.text;
_previousSelection = textField.selectedTextRange;
return YES;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios uitextfield