【发布时间】:2016-01-01 18:33:18
【问题描述】:
我已经搜索了整个互联网并尝试了不同的方法来实现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`
【问题讨论】:
-
你为什么玩占位符?当您开始输入时它会自动消失...
标签: ios objective-c xcode keyboard uitextfield