Ich habe diese Website durchsucht, dass ich keine Lösung für das Problem finden konnte, die ich jetzt konfrontiert bin. Hoffe jemand kann helfen.ResignFirstResponder nicht die Tastatur (iPhone)
Ich habe eine UIAlertView erstellt, um den Benutzer aufzufordern, seinen Namen in eine iPhone App einzugeben.
UIAlertView *enterNameAlert = [[UIAlertView alloc] initWithTitle:@"Enter your name"
message:@"\n\n\n"
delegate:self
cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
otherButtonTitles:NSLocalizedString(@"OK", nil),nil];
UITextField *enterNameField = [[UITextField alloc] initWithFrame:CGRectMake(16, 83, 252, 25)];
enterNameField.keyboardAppearance = UIKeyboardAppearanceAlert;
enterNameField.borderStyle = UITextBorderStyleRoundedRect;
enterNameField.autocorrectionType = UITextAutocorrectionTypeNo;
enterNameField.clearButtonMode = UITextFieldViewModeWhileEditing;
enterNameField.returnKeyType = UIReturnKeyDone;
enterNameField.delegate = self;
[enterNameField becomeFirstResponder];
[enterNameAlert addSubview:enterNameField];
[enterNameAlert show];
[enterNameAlert release];
[enterNameField release];
Ich habe Setup diese Viewcontroller mit UITextFieldDelegate in der Header-Datei zu entsprechen, und implementiert textFieldShouldReturn:
versucht, die Tastatur zu schließen, wenn der Benutzer Hit Fertig.
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if ([textField isFirstResponder]) {
[textField resignFirstResponder];
NSLog(@"text field was first responder");
} else {
[textField becomeFirstResponder];
[textField resignFirstResponder];
NSLog(@"text field was not first responder");
}
NSLog(@"textfieldshouldreturn");
return YES;
}
Im Debugger bestätigen I, dass diese Methode erfolgreich aufgerufen wird, wenn I auf die Schaltfläche Fertig tippen, wobei das Textfeld zu dieser Zeit der erste Responder sein. Die Tastatur geht jedoch nicht weg, aber der kleine ClearButton verschwindet. Es ist klar, dass das TextField nicht mehr der Ersthelfer ist, denn wenn ich erneut auf die Schaltfläche Fertig klicke, wird nichts aufgerufen. Ich möchte nur die Tastatur mit der Schaltfläche Fertig verlassen. Kann mir bitte jemand eine Lösung anbieten? Tausend Dank.
Was passiert, wenn Sie das Textfeld als eine Eigenschaft in Ihrem View-Controller festlegen und sicherstellen, dass Sie es behalten, selbst nachdem die Warnung beendet wurde? Ich frage mich, ob es vielleicht freigegeben wird, bevor die Ereignisschleife dazu kommt, die resignFirstResponder-Nachricht oder etwas Seltsames zu senden. P.S. Haben wir früher zusammen gearbeitet? – clozach