现在我有一个简单的登录视图控制器。它有2个文本字段,一个用于用户名,另一个用于密码。我想为这两个文本字段的键盘添加以下功能:
当用户在用户名文本字段中输入用户名时,他们应该可以按下"下一步"返回密钥,应该将它们带到密码的第二个文本字段。
当用户输入密码后,他们按下键盘"完成"返回键,我想执行我已设置的IBAction。
这是我想要在用户按下"完成"时执行的IBAction代码。密码文本字段中的返回键:
-(IBAction)didTapLoginButton:(id)sender {
[self textFieldShouldReturn:_usernameEntry];
NSString *user = [_usernameEntry text];
NSString *pass = [_passwordEntry text];
if ([user length] < 4 || [pass length] < 4) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Invalid Entry" message:@"Username and Password must both be at least 4 characters long." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alert show];
} else {
[_activityIndicator startAnimating];
[PFUser logInWithUsernameInBackground:user password:pass block:^(PFUser *user, NSError *error) {
[_activityIndicator stopAnimating];
if (user) {
NSLog(@"Successful login");
//[self performSegueWithIdentifier:@"loginToMainAppSegue" sender:self];
[self performSegueWithIdentifier:@"loginToMediaCaptureVC" sender:self];
} else {
NSLog(@"%@",error);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Failed." message:@"Invalid Username and/or Password." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alert show];
}
}];
}
}
我已将视图控制器设置为委托,两个文本字段都可以正常工作,但我想添加上面列出的额外功能。
如果它有所不同,则不会以编程方式创建文本字段和键盘。它们是在故事板上创建的。
感谢您的帮助。
答案 0 :(得分:5)
step1 - 为您的文本字段
添加标记第2步 - 检查- (BOOL)textFieldShouldReturn:(UITextField *)textField;
如果第一个用户名处于活动状态,则在密码字段处于有效状态时生成密码textfield becomes first responder.
{/ 1}}
resign first responder
答案 1 :(得分:2)
对于UITextField或可编辑的UITextVie,您也可以这样做:
[myTextField setReturnKeyType:UIReturnKeyNext];
您也可以在Interface Builder中的文本字段/视图的文本输入特征下配置它。
更新
在Xamarin.iOS或Monotouch中:
myTextField.ReturnKeyType = UIReturnKeyType.Next;