Wie bringen einen date-picker, wenn Sie ein Datum-Feld angezapft wird?
Ich habe eine Ansicht mit einem Textfeld für das Datum. Ich möchte das aktuelle Datum standardmäßig auf "heute", aber wenn der Benutzer will, um in ein anderes Datum, er kann Tippen Sie auf das Feld, um ein Datum-picker (die bereits Hinzugefügt, um die Ansicht). Ich habe ein ähnliches Frage-und Antwort -, dass ich, obwohl war zur Arbeit zu gehen. Ich habe keine Fehler, aber wenn ich Tippen Sie auf das Datum-Feld von der Tastatur kommt, nicht der Datum-picker.
@IBOutlet var enterDate: UITextField!
@IBAction func dateTapped(sender: UITextField) {
//code for what to do when date field is tapped
var datePickerView : UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.Date
sender.inputView = datePickerView
datePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged)
}
func handleDatePicker(sender: UIDatePicker) {
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"
enterDate.text = dateFormatter.stringFromDate(sender.date)
}
- Welche Art von Objekt Sie klicken Sie auf. Ist es ein
UITextField
?? Wie haben Sie Hinzugefügt, das textfield? - Ja, es ist ein UITextField genannt enterDate. Ich bin mir nicht sicher, was Sie Fragen, von "Wie haben Sie Hinzugefügt, das textField?" Ich habe ein text-Feld zur Ansicht und dann erstellt der Steckdose namens enterDate. Nicht, dass die Antwort auf Ihre Frage?
- Hier ist was für mich gearbeitet in Swift 4 - stackoverflow.com/a/56115141/2006730
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie nehmen eine
UITextField
für den input, aber Sie haben keine Verbindung zwischen den datePicker und textfield.Haben Sie einen Blick auf diese Antwort hier
Swift dies kann durch
textfield.inputView = datePickerView
. Danach wird die, klicken Sie auf textfield wird von datePicker, aber Sie sollten datePicker initialisieren, bevor dies zu tun.txtField.inputView = datePickerView
. Danach wird das click-Ereignis behandelt werden soll von der datePicker. Allerdings sollten Sie initialisieren der datePicker, bevor die hand, wie inviewDidLoad
uswErstellen Erweiterung von UITextView und fügen Sie die folgenden Methoden.
In ViewController Hinzufügen ein UITextField und erstellen IBOutlet:-
Ich glaube nicht, dass Sie müssen die
dateTapped
Aktion. Wenn Sie alle Ihre setup-code in einem Ort, wo Sie initialisieren Sie die text-Feld-ich denke, es wird automatisch arbeiten.Ich denke, das problem, Sie sehen durch Sie die Einstellung des
inputView
nur nach das Textfeld gedrückt wird. Wenn Sie es zuvor eingestellt haben (z.B.enterDate.inputView = datePickerView
) das system sollte den rest erledigen. In anderen Worten, wenn das text-Feld wird der first responder wird es zeigen dieinputView
statt der normalen Tastatur.