自定义键盘的“下一步”和“完成”返回按钮

时间:2014-03-08 00:26:28

标签: ios objective-c uitextfield uikeyboard ibaction

现在我有一个简单的登录视图控制器。它有2个文本字段,一个用于用户名,另一个用于密码。我想为这两个文本字段的键盘添加以下功能:

  1. 当用户在用户名文本字段中输入用户名时,他们应该可以按下"下一步"返回密钥,应该将它们带到密码的第二个文本字段。

  2. 当用户输入密码后,他们按下键盘"完成"返回键,我想执行我已设置的IBAction。

  3. 这是我想要在用户按下"完成"时执行的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];
                }
            }];
        }
    
    }
    

    我已将视图控制器设置为委托,两个文本字段都可以正常工作,但我想添加上面列出的额外功能。

    如果它有所不同,则不会以编程方式创建文本字段和键盘。它们是在故事板上创建的。

    感谢您的帮助。

2 个答案:

答案 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;
相关问题