Вы можете использовать UITextFieldDelegate, пример кода -
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if range.location == 0{
if string.rangeOfCharacter(from: NSCharacterSet.letters) != nil{
return true
}
}else if range.location == 1{
if string.rangeOfCharacter(from: NSCharacterSet.decimalDigits) != nil{
return true
}
}else if range.location == 2{
if string.rangeOfCharacter(from: NSCharacterSet.letters) != nil{
return true
}
}else{
if string.rangeOfCharacter(from: NSCharacterSet.decimalDigits) != nil{
return true
}
}
return false
}