2016-12-09 6 views
0

Ich habe so viel wie möglich gesucht und ich habe die Lösung für nur einen Teil der Anforderung nicht ganz, also bitte lesen Sie mein Szenario sorgfältig und fahren Sie dann fort.Datum einstellen manuell und mit Datumsauswahl in IOS

Szenario

Ich habe einige Text bearbeiten Felder in meinem iOS-Anwendung, unter denen ich Benutzer eingeben, um zu ermöglichen, entweder im Feld oder auf Klick öffnen Datumsauswahl und wählen Sie ein Datum von dort manuell Datum.

Anforderung

ich beide Teil separat als Benutzer getan haben, können das Datum manuell oder Benutzer eingeben kann Datum Datumsauswahl wählen, aber die Anforderung ist, sollte beide zusammenarbeiten, wie

Wenn Benutzer auf edit text date picker sollte geöffnet werden und wenn der Benutzer manuell eingeben möchte, kann er manuell eingeben.

Hinweis

Bitte beachten Sie, dass ich nur Text bearbeitet Kontrolle verwenden, bedeutet Client-Vorschlag für die Verwendung von kleinen Datum Symbol neben Bearbeiten von Text und offener Datumsauswahl von dort ablehnen hat, Kunde will nur beide Betrieb sehen nur von einer Kontrolle.

also bitte helfen Sie mir dafür, wie kann ich dies tun, wie derzeit auf klicken jedes Mal Datumsauswahl öffnen und Benutzer ist nicht in der Lage, Daten manuell einzugeben.

+0

hinzufügen lange Drücken Sie auf das Textfeld, um die Datumsauswahl zu öffnen. Einmaliges Antippen, um die Tastatur des Formulars zu bearbeiten. Lang drücken, um die Datumsauswahl zu öffnen. – lukya

+0

Auch für den obigen Ansatz zu arbeiten, müssen Sie durchlaufen alle Gesten im Textfeld und erfordern, dass sie fehlschlagen, wenn ein langer Druck mit 'requireGestureRecognizerToFail' festgestellt wird. – lukya

Antwort

0

Zunächst befindet sich die von Ihnen erstellte Datumsauswahlsteuerung unter einem Textfeld. Dann, als Standard, machen Sie den Datepicker ausblenden.

Zum Beispiel

Outlet UITextField *yourDateField; 

Und ...

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 

    if(yourDateField == textField) 
     [datepicker setHidden:NO]; 

    return YES; 
} 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 

    if ([[touch view] class] != [UITextField class]) { 
     [datepicker setHidden:YES]; 
     // hide keyboard 
     return; 

    } 

} 

Natürlich, wenn Benutzer das Datum aus picker wählt, müssen Sie ...

[yourDateField setText:<< datepicker's selected date >>] 
Verwandte Themen