Alert内のUITextFieldをカスタムする + 入力した文字数によってTextFieldに"/"を追加する

#今回の内容
* Alert内のUITextFieldをカスタムする
* 画像のアラートの上から3つ目のTextFieldに入力した文字数によってTextFieldに"/"を追加する

<img width="150" alt="18579D0A-71F8-4C65-8C9D-5B16EF18A793_4_5005_c.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1466343/10b1fded-94ad-3074-09df-34d1e16be28b.jpeg">


#コードと簡単解説

##Alert内のUITextFieldをカスタムする
* `.placeholder`はプレースホルダーを設定します。

* `.layer.borderWidth`はTextFieldのborderの太さを設定します。(値が大きい程太くなります)

* `.layer.borderColor`はTextFieldのborderの色を設定します。

* `.borderStyle`はborderの形を設定します。種類は`.roundedRect　.bezel　.line　.none`があります。

* `.clearButtonMode`はTextFieldの右端に表示される入力された文字を削除するボタンを表示するか設定する。種類は`.always .never .unlessEditing .whileEditing`があります。

```Swift:Alert              
        var productNameTextField:UITextField?
        var janCodeTextField:UITextField?
        var deadlineDayTextField:UITextField?
        var tagTextField:UITextField?

        let alert = UIAlertController(title: "データを追加", message:"データを追加する場合は、値を入力して下さい", preferredStyle: .alert)

        alert.addTextField { (alertProductNameTextField:UITextField) in

            alertProductNameTextField.placeholder = "商品名"
            alertProductNameTextField.layer.borderWidth = 1.0
            alertProductNameTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
            alertProductNameTextField.borderStyle = .roundedRect
            alertProductNameTextField.clearButtonMode = .always
            productNameTextField = alertProductNameTextField

        }

        alert.addTextField { (alertJANCodeTextField:UITextField) in

            alertJANCodeTextField.placeholder = "JANコード"
            alertJANCodeTextField.layer.borderWidth = 1.0
            alertJANCodeTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
            alertJANCodeTextField.borderStyle = .roundedRect
            alertJANCodeTextField.clearButtonMode = .always
            janCodeTextField = alertJANCodeTextField

        }
        
        alert.addTextField { (alertDeadlineDayTextField:UITextField) in

            alertDeadlineDayTextField.placeholder = "期限 例:2021/01/01"
            alertDeadlineDayTextField.layer.borderWidth = 1.0
            alertDeadlineDayTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
            alertDeadlineDayTextField.borderStyle = .roundedRect
            alertDeadlineDayTextField.clearButtonMode = .always
            alertDeadlineDayTextField.addTarget(self, action: #selector(self.addSlash), for: .allEditingEvents)
            deadlineDayTextField = alertDeadlineDayTextField

        }
        
        alert.addTextField { (alertTagTextField:UITextField) in

            alertTagTextField.placeholder = "商品の分類 例:食品"
            alertTagTextField.layer.borderWidth = 1.0
            alertTagTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
            alertTagTextField.borderStyle = .roundedRect
            alertTagTextField.clearButtonMode = .always
            tagTextField = alertTagTextField

        }
         
        alert.addAction(UIAlertAction(title: "キャンセル", style: .default, handler: nil))
        
        alert.addAction(UIAlertAction(title: "追加", style: .default, handler: { _ in

            //追加が押された時の処理
           
         }))
```

##入力した文字数によってTextFieldに"/"を追加する

* `.addTarget(self, action: #selector(self.addSlash), for: .allEditingEvents)`でTextFieldに値が入力されるたびに`text.count`が4文字目と7文字目の時だけ"/"を追加します。

```Swift:Alert
        alert.addTextField { (alertDeadlineDayTextField:UITextField) in

            alertDeadlineDayTextField.placeholder = "期限 例:2021/01/01"
            alertDeadlineDayTextField.layer.borderWidth = 1.0
            alertDeadlineDayTextField.layer.borderColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0).cgColor
            alertDeadlineDayTextField.borderStyle = .roundedRect
            alertDeadlineDayTextField.clearButtonMode = .always
            alertDeadlineDayTextField.addTarget(self, action: #selector(self.addSlash), for: .allEditingEvents)
            deadlineDayTextField = alertDeadlineDayTextField

        }
```

* 上の画像の場合は、`2021`を入力した時に"/"を追加します。（`2021/`になります）
* `2021/08`を入力した時に"/"を追加します。（`2021/08/`になります）

```Swift:#selector(self.addSlash)
    @objc func addSlash(sender:UITextField){
        
        if sender.text?.count == 4{
            
            sender.text = sender.text! + "/"
            
        }else if sender.text?.count == 7{
            
            sender.text = sender.text! + "/"
            
        }       
    }       
}
```

# 終わり
ご指摘、ご質問などありましたら、コメントまでお願い致します。