2016-08-16 17 views
1

EditingDidBeginイベントトリガーの使用中に問題が発生しました。私はUITextFiledを編集している間に私はトリガーしたので、私はdatePickerを表示しようとする必要があります。初めてイベントを引き起こすことができるのはdatePickerです。 datePickerを選択した後、もう一度textFieldの編集を試しました。そのイベントを引き起こしました。そこで、datePickerの代わりにキーボードが表示されました。即座に2回目のEditingDidBeginイベントが発生しません

+3

お試しいただいたコードを表示してください。これは、お試しいただいた内容を理解するのに役立ちます。 –

+0

@IBAction func SelectExpireDate(送信者:UITextField){ textFieldShouldReturn(self.ExpireDate); calling_date_picker; } – vara

答えて

1

これはどう:

あなたのビューコントローラ上UITextFieldDelegateプロトコルを実装します。

class ViewController: UIViewController, UITextFieldDelegate { ... 

は、ビューコントローラは、ストーリーボードにUITextFieldのの代理人として、フックアップされていることを確認します。あなたが代わりに日付ピッカーを表示することができますので、偽のテキストフィールドが編集を開始することはありませんことを意味戻る

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { 
    print("show date picker") 
    return false 
} 

はその後、textFieldShouldBeginEditing機能を実装しています。

上記のコードは、そのビューコントローラに委任するすべてのUITextFieldのタップごとに日付ピッカーを表示します。それより細かい制御が必要な場合は、参照するアウトレットを接続し、textFieldShouldBeginEditingをチェックインして、正しいテキストフィールドがあるかどうかを確認する必要があります。または、タグを使用することもできます(ugh)。

関連する問題