はじめに
プロフィールの誕生日欄(textField)を入力する際に、キーボードをUIDatePickerにしようと思ったので記事にしてみました。
環境
・Swift 5.5.2
・Xcode 13.3.1
使ってみる
再利用できるようにクラスにしてみました。
DatePicker.swift
final class DatePicker {
static let picker = UIDatePicker()
static let formatter = DateFormatter()
static func setup(_ vc: UIViewController, action: Selector, for textField: UITextField) {
picker.datePickerMode = .date
picker.preferredDatePickerStyle = .wheels
picker.locale = Locale(identifier: "ja_JP")
picker.addTarget(vc, action: action, for: .valueChanged)
formatter.dateFormat = "yyyy/MM/dd"
textField.inputView = picker
}
}
Controller側
ViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
DatePicker.setup(self, action: #selector(datePickerValueChanged), for: dateTextField)
}
@objc private func datePickerValueChanged(sender: UIDatePicker) {
dateTextField.text = DatePicker.formatter.string(from: sender.date)
}
これでdatePickerの値を変更するたびにtextFieldのテキストも変更されていきます。
datePickerのスタイルや、フォーマット等はお好みで変更してください。