hoz blog

営業からSEに転職した文系エンジニアです。プログラミングと趣味の株に関してブログを書いていこうと思います。

【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

        

    }