プログラミングと旅と映画の日々

普段はスマホ決済サービスの会社でバッグエンドを担当しているエンジニアです。プログラミングと趣味の映画、株、時々うどんに関してブログを書いていこうと思います。海外ドラマ、クロスバイクも好きです。

【Swift】 UITextFieldタップ時にUIDatePickerを表示する方法

以下のように、UITextFieldのタップ時にUIDatePickerを表示する方法を記載。

日本語のサイトにSwiftのver4.0での実装方法が載っておらず、苦戦したため備忘です。

 
f:id:takanori5:20171022101916p:plain


 

1.story boadにUITextFieldを配置し、ソースコードに関連付け

@IBOutlet var dateTextField: UITextField!

 

2.UITextFieldDelegateプロトコルを宣言

UITextFieldDelegate

class ViewController: UIViewController, UITextFieldDelegate {

 

3.viewDidLoadでdatePickerのインスタンスを生成し、フォーマットした値をtextFieldに入れる

    override func viewDidLoad() {

        super.viewDidLoad()

        dateTextField.delegate = self

        let datePicker = UIDatePicker()   

        // ②日本の日付表示形式にする

        datePicker.locale = NSLocale(localeIdentifier: "ja_JP") as Locale

        datePicker.addTarget(self, action: #selector(ViewController.datePickerValueChange(sender:)), for: UIControlEvents.valueChanged)

        dateTextField.inputView = datePicker

        

    }