textField форматирование номера телефона (UITextField for Phone Number format) 2 вариант - Swift 5
Индивидуальное, дистанционное обучение программирование
подробнее
IBOutlet weak var phoneNumberTextField.text!
extension NewTaskTableViewController : UITextFieldDelegate {
func formattedNumber(number:
String) ->
String {
let cleanPhoneNumber = number.components(
separatedBy: CharacterSet.decimalDigits.inverted).
joined()
let mask = "+X (XXX) XXX-XXXX"
var result = ""
var index = cleanPhoneNumber.startIndex
for ch
in mask
where index < cleanPhoneNumber.endIndex {
if ch == "X" {
result.append(cleanPhoneNumber[
index])
index = cleanPhoneNumber.index(
after: index)
}
else {
result.append(ch)
}
}
return result
}
func textField(_
textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string:
String) ->
Bool
{
guard let text = phoneNumberTextField.text
else {
return false }
let newString = (text
as NSString).
replacingCharacters(
in: range,
with: string)
textField.text =
formattedNumber(number:
newString)
return false
}
}
Masks
"" => ""
"0" => "+0"
"412" => "+4 (12"
"12345678901" => "+1 (234) 567-8901"
Возврат к списку