2017-04-15 2 views
0

Meine Ansicht Controller-Struktur auf Storyboard.Nicht in der Lage, die Tastatur auf dem Textfeld zu verwerfen

Hauptansicht -> Bildlaufansicht -> Ansicht -> 3 Textfeld (In der Hauptansicht eine Bildlaufansicht hinzufügen, erneut eine Ansicht hinzufügen und dann 3 Textfeld hinzufügen).

Auf 1. Textfeld (Datum), öffnen Sie die Datumsauswahl.

am 2. Textfeld (Stadt), öffnen neue View-Controller für Städteliste und Stadt nach der Wahl wird es öffnen neue View-Controller für Arbeitsbereich .Nach Auswahl Arbeitsbereich wird es Hauptansicht zurückkommen Controller und die ausgewählte Stadt und der Arbeitsbereich werden im zweiten Textfeld (Stadt) angezeigt.

auf 3. Textfeld (Kunde), öffnen Sie die normale Tastatur.

Es funktioniert gut, aber das Problem ist, wenn ich auf Kunden Textfeld klicken, wird es Tastatur zur gleichen Zeit öffnet ich auf Stadt Textfeld klicken, als es Stadt Liste View Controller aber Tastatur entlassen wird nicht geöffnet . Tastatur ist auch auf Stadt Liste anzeigen Controller zeigen.

Ich habe bereits versuchen unten denkt.

Ich versuche bereits mit [self.view endEditing: YES] und resignFirstResponder. Aber kein erfolgreiches Ergebnis.

Ich habe das Tag Textfeld zuweisen und auch Delegate in ViewDidLoad() -Methode. Ich habe auch den Delegaten vom Storyboard zuweisen.

self.cityOrAreaTXTFld.delegate = self; 
self.selectCustTXTFld.delegate = self; 

self.dateTXTFld.tag = 1; 
self.cityOrAreaTXTFld.tag = 2; 
self.selectCustTXTFld.tag = 3; 

Mein textFieldDidBeginEditing() Methode

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 





if(textField.tag==1){ 
NSLog(@"Code to open date picker"); 

} 


else if (textField.tag==2){ 

    [self.view endEditing:YES]; 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UIViewController *CityPEVC = [storyboard instantiateViewControllerWithIdentifier:@"CityListViewController"]; 

    [self.navigationController pushViewController:CityPEVC animated:YES]; 


    return; 

} 

else if(textField.tag==3) 
{ 
    [_dateTXTFld resignFirstResponder]; 
    [_cityOrAreaTXTFld resignFirstResponder]; 
} 
} 

Ich habe eine Lösung für dieses In dieser Lösung

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

{ 

if(textField.tag == 2) 
{ 

    [_dateTXTFld resignFirstResponder]; 
    [_selectCustTXTFld resignFirstResponder]; 

    return YES; 
} 
else 
    return YES; 


} 

, Wenn Tastatur als nicht ein Problem nicht geöffnet ist aber wenn eine Tastatur auf Hauptansicht Controller und Fi geöffnet ist Klicken Sie zum ersten Mal auf Stadt Textfeld wird es die Tastatur (nicht offene Stadt Liste VC) und zum zweiten Mal klicken Sie auf Stadt Textfeld, dass es öffnen Stadt Liste anzeigen Controller.

Gibt es eine Lösung, wenn eine andere Textfeld-Tastatur auf Hauptansicht-Controller geöffnet ist, und ich auf Stadtliste Textfeld klicke. Als, wie man diese Tastatur und gleichzeitig öffne Stadtlistenansichtsteuerpult entlässt?

Antwort

0

Ich denke, es wäre sinnvoll, es in viewWillDisappear zu bedienen: Um die Tastatur zu verstecken, bevor die Steuerung

[self.view endEditing:YES]; 
+0

Thank u so viel lieber .. Seine Arbeit – Dhara

+0

, wie diese Frage zu schließen? – Dhara

+0

Öffnen Sie Ihren Stapel und öffnen Sie die rechte Ecke Ruf.In dem Sie unten zeigen, die Sie Fragen gestellt haben. Wählen Sie eine beliebige Frage und unterhalb der Frage zeigen Sie vier Tags an - teilen, bearbeiten, löschen und markieren. Folgen Sie Schritt für Schritt langsam. Zeigen Sie diesen Screenshot: http://prntscr.com/extnm5 Ich denke, es ist Arbeit für Sie. –

0

diese Methode Bewerben auf TouchesBegan Funktion

des Feldes verwiesen Codebeispiel ist unten:

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ 
    [self.view endEditing:YES]; 
} 

Wenn Sie einen beliebigen Bildschirm berühren, wird es angezeigt l entlassen Tastatur.

0

viewController.h

@interface yourViewcontroller : UIViewController 
< 
UITextFieldDelegate 
> 

viewController.m

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

yourTextField.delegate=self; 
} 

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
[self.view endEditing:YES];//dismiss all text field 
return YES; 
} 
Verwandte Themen