2010-04-16 14 views
5

Ich habe eine Anforderung, wo ich ein Textfeld in einer Ansicht habe. Wenn ich die Ansicht öffnen möchte, indem ich die Registerkarte (TabBased Application) wechsle, erscheint beim ersten Laden der Ansicht die Tastatur, weil ich die loadview-Methode aufgerufen habe. Aber wenn ich zu Tab2 wechsle und wieder zu Tab1 wechsle, wird die Ladeansicht nicht aufgerufen. Ich möchte, dass die Tastatur jedes Mal angezeigt wird, wenn ich die Registerkarte "Tab1" öffne.Wie öffne ich die Ansicht mit der Tastatur, wenn die Ansicht bereits geladen ist?

Antwort

10

Verwenden -viewWillAppear: in Ihrem View-Controller Ihr Textfeld eine -becomeFirstResponder Nachricht zu senden, zB:

- (void) viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [myTextField becomeFirstResponder]; 
} 
+0

ich das Gleiche getan haben ... Aber ViewWillAppear Methode ist nicht immer genannt ...... Hier ist der Code - (void) viewWillAppear: (BOOL) animiert { [super viewWillAppear: animiert]; \t [searchForProduct werdenFirstResponder]; } Bitte Hilfe –

+1

Ihr Code sollte funktionieren, unter der Annahme, dass alle Objekte instanziiert und verdrahtet sind. Versuchen Sie, eine NSLog-Anweisung hinzuzufügen, um zu überprüfen, ob "-viewWillAppear:" aufgerufen wird. Stellen Sie außerdem sicher, dass "searchForProduct" nicht "nil" ist und/oder dass es ordnungsgemäß angeschlossen ist, wenn Sie den Interface Builder für Ihre Ansicht verwenden. –

+0

searchForProduct ist nicht freigegeben .. Es enthält die Speicherzuweisung ... Das Problem ist viewWillAppear Methode wird nie aufgerufen ... –

Verwandte Themen