【发布时间】:2015-06-21 11:09:27
【问题描述】:
我到处搜索,看到了很多解决方案,但其中大部分确实是“hackish”并且容易出错。
我正在尝试使用 libPhoneNumber iOS 类 NBAsYouTypeFormatter 格式化 UITextField 上的电话号码。
但是,我找不到合适的使用方法。
以下是我的尝试。 (来自这个帖子Phone number format ios)
var asYouTypeFormatter = NBAsYouTypeFormatter(regionCode: "US");
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if textField == phoneTextField {
if range.length == 0 {
textField.text = asYouTypeFormatter.inputDigit(textField.text + string);
}
else if range.length == 1 {
textField.text = asYouTypeFormatter.removeLastDigit();
}
return false;
}
return true;
}
这段代码确实检测到range.length,并且它没有考虑到如果用户选择一个或多个字符然后输入。
如果用户这样做,将导致它不是类型。
有没有人找到一个更优雅的方法来解决这个问题?
【问题讨论】:
标签: ios swift uitextfield libphonenumber