2009-03-16 19 views
3

Ich habe 5 UITextFields auf einem Formular hinzugefügt. Einer der Textdateien dient zur Eingabe des Geburtsdatums. Wenn also dieses spezielle Textfeld berührt wird, anstatt die Standardtastatur anzuzeigen, muss der Datapicker angezeigt werden.Wie Standard Tastatur zu verbergen

Ich habe versucht, die folgenden:

- (void)textFieldDidBeginEditing:(UITextField *)textField{ 
    [textField resignFirstResponder]; 
    [self showDatePicker];//this is my own function to display datepicker. 
} 

wenn diese Funktion die Datumsauswahl aufgerufen wird angezeigt wird, zusammen mit dem Datumsauswahl auch die Standard-Tastatur angezeigt wird und dass verbirgt sich die Datepicker. Ich weiß nicht, wie man die Standardtastatur für diesen speziellen Text ablegt. Bitte hilf mir.

+0

gibt es keine Antwort auf diese Frage? – saikamesh

+0

Ich möchte nur wissen, ob das möglich ist oder nicht, es hat keinen Sinn, Zeit damit zu verschwenden, wenn das unmöglich ist – saikamesh

+0

bitte helft mir !!! – saikamesh

Antwort

1

Vielleicht sollten Sie kein UITextField dafür verwenden. Verwenden Sie eine normale UITableViewCell und drücken Sie einen neuen UIViewController mit dem Datumsauswahl, wenn Sie darauf tippen.

+0

Danke, dass du mir diesen Tipp gegeben hast. Ich habe bereits eine transparente Schaltfläche im Textfeld hinzugefügt, und in seinem Click-Ereignis habe ich meine showDatePicker-Funktion aufgerufen. Aber das Textfeld wird nicht den Fokus erhalten, wenn die transparente Schaltfläche angeklickt wird. – saikamesh

+0

Ich wurde gebeten, dies auch zu erreichen. Das hat mich dazu gebracht, diese Frage zu stellen. – saikamesh

+0

Mach es nicht komplizierter als es sein muss. Ein UITableViewCell reagiert auf Taps und verfügt über die Eigenschaft .text. Wenn Sie keinen Text über die Tastatur eingeben, brauchen Sie kein UITextField ... – Schpaencoder

0

Das Zurückweisen des Ersthelfers sollte die Tastatur verbergen. Meine beste Vermutung ist, dass TextField an diesem Punkt im Code nicht wirklich der Ersthelfer ist, also hat es keinen Effekt, es zurückzugeben. Vielleicht sollten Sie eine NSLog-Anweisung einfügen, um das zu überprüfen.

2

Sie können dies in -textFieldShouldBeginEditing: umgehen.

Wenn diese Methode NEIN zurückgibt, wird die Tastatur nicht angezeigt.

Zeigen Sie einfach die Datumsauswahl in dieser Methode und geben Sie dann NO zurück.

3

Obwohl dies eine alte Frage ist, kam ich hierher, während ich nach dem gleichen suchte.

Dies wird für eine beliebige Anzahl/Verschachtelung von Ansichten auf dem Bildschirm

- (void) hideKeyboard: (UIView *) view { 
    NSArray *subviews = [view subviews]; 
    for (UIView *subview in subviews){ 
     if ([subview isKindOfClass:[UITextField class]]) { 
      [subview resignFirstResponder]; 
     } 
     [self hideKeyboard: subview ]; 
    } 
} 

Später fand intuitive Art und Weise es mir, ich habe

[self.view endEditing:YES]; 
1

präsentierte Arbeit zu tun, gerade durch die Arbeit das gleiche Problem,

Wir haben ein paar Dinge ausprobiert und am Ende mit sehr viel schrecklichen Code und Bugs auf dem Weg endete.

Die einfachste Option ist bei weitem noch ein UITextField zu haben, aber es ist .inputView zum DatePicker

Jetzt versuchen wir einen schönen Weg zu finden, um den Bereich zu unterbreiten, da der Kommissionierer keine Return-Taste hat wie die Tastaturen.

+0

IMHO nettesten Weg, das Feld zu übermitteln ist 'UITextField'' 'inputAccessoryView' zu verwenden. – user500

Verwandte Themen