Я искал весь интернет и пробовал различные способы реализации UITextFieldShouldReturn
, но когда я запускаю его в симуляторе, он просто не работает.UITextFieldShouldReturn не работает с моим кодом
То, что я пытаюсь сделать, это перейти от первого текстового поля (emailTextField
) ко второму (nameTextField
), когда пользователь нажимает следующую кнопку на клавиатуре. То же самое для клавиатуры второго текстового поля и отпустите клавиатуру, когда пользователь нажимает кнопку «Готово» в последнем текстовом поле (numberTextField
).
Вот мой код, может ли кто-нибудь мне помочь?
#import "ViewController.h"
@interface ViewController() <UITextFieldDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.emailTextField.placeholder = @"Your Pitt Email(optional)";
self.nameTextField.placeholder = @"Lost ID Name";
self.numberTextField.placeholder = @"Lost ID Series Number(optional)";
[self.emailTextField.delegate self];
[self.nameTextField.delegate self];
[self.numberTextField.delegate self];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
//release delegate
-(void)dealloc{
self.emailTextField.delegate = nil;
self.nameTextField.delegate = nil;
self.numberTextField.delegate = nil;
}
//dismiss keyboard when it's called
-(void)dismissKeyboard{
[self.emailTextField resignFirstResponder];
[self.nameTextField resignFirstResponder];
[self.numberTextField resignFirstResponder];
}
//when a textfield begins editing, this will happen
-(void)textFieldDidBeginEditing:(UITextField *)textField{
if(textField == self.emailTextField){
textField.placeholder = @"";
}else if(textField == self.nameTextField){
textField.placeholder = @"";
}else{
textField.placeholder = @"";
}
}
//when a textfield ends editing, this will happen
-(void)textFieldDidEndEditing:(UITextField *)textField{
if(textField == self.emailTextField){
textField.placeholder = @"Your Pitt Email(optional)";
[self textFieldShouldReturn:self.emailTextField];
}else if(textField == self.nameTextField){
textField.placeholder = @"Lost ID Name";
[self textFieldShouldReturn:self.nameTextField];
}else{
textField.placeholder = @"Lost ID Series Number(Optional)";
[self textFieldShouldReturn:self.numberTextField];
}
}
//return button set up
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
//when confirm is pressed
- (IBAction)confirmButton:(id)sender {
[self dismissKeyboard];
}
@end`
почему вы играете с заполнителем? он будет автоматически идти, когда вы начнете печатать ... –