xx-xx-xxx中的UITextField格式 [英] UITextField format in xx-xx-xxx
本文介绍了xx-xx-xxx中的UITextField格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用UITextField,我希望它的格式应该是xx-xx-xxx格式的数字。
I am using UITextField and i want that should take character in the format of xx-xx-xxx only numbers.
任何帮助?
推荐答案
尝试下面它会起作用
Objective-C
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
int groupingSize = 2;
if([string length] == 0) {
groupingSize = 4;
}
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init] ;
NSString *separator = @"-";
[formatter setGroupingSeparator:separator];
[formatter setGroupingSize:groupingSize];
[formatter setUsesGroupingSeparator:YES];
[formatter setSecondaryGroupingSize:2];
if (![string isEqual: @""] && (textField.text != nil && textField.text.length > 0)) {
NSString *num = textField.text;
num = [num stringByReplacingOccurrencesOfString:separator withString:@""];
NSString *str = [formatter stringFromNumber:[NSNumber numberWithDouble:[num doubleValue]]];
textField.text = str;
}
return YES;
}
Swift-3
extension ViewController: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
var groupSize = 2
let separator = "-"
if string.characters.count == 0 {
groupSize = 4
}
let formatter = NumberFormatter()
formatter.groupingSeparator = separator
formatter.groupingSize = groupSize
formatter.usesGroupingSeparator = true
formatter.secondaryGroupingSize = 2
if var number = textField.text, string != "" {
number = number.replacingOccurrences(of: separator, with: "")
if let doubleVal = Double(number) {
let requiredString = formatter.string(from: NSNumber.init(value: doubleVal))
textField.text = requiredString
}
}
return true
}
}
这篇关于xx-xx-xxx中的UITextField格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文