Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自定义键盘';s";“下一步”;及;“完成”;返回按钮_Ios_Objective C_Uitextfield_Uikeyboard_Ibaction - Fatal编程技术网

Ios 自定义键盘';s";“下一步”;及;“完成”;返回按钮

Ios 自定义键盘';s";“下一步”;及;“完成”;返回按钮,ios,objective-c,uitextfield,uikeyboard,ibaction,Ios,Objective C,Uitextfield,Uikeyboard,Ibaction,现在我有一个简单的登录视图控制器。它有两个文本字段,一个用于用户名,一个用于密码。我想为这两个文本字段的键盘添加以下功能: 当用户在用户名文本字段中输入用户名后,他们应该能够按下“下一步”返回键,该键将引导他们进入第二个文本字段输入密码 当用户输入完密码并按下键盘的“完成”返回键时,我想执行我设置的iAction 以下是当用户按下密码文本字段中的“完成”返回键时,我要执行的iAction代码: -(IBAction)didTapLoginButton:(id)sender { [sel

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

  • 当用户在用户名文本字段中输入用户名后,他们应该能够按下“下一步”返回键,该键将引导他们进入第二个文本字段输入密码

  • 当用户输入完密码并按下键盘的“完成”返回键时,我想执行我设置的iAction

  • 以下是当用户按下密码文本字段中的“完成”返回键时,我要执行的iAction代码:

    -(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];
                }
            }];
        }
    
    }
    
    -(iAction)didTapLoginButton:(id)发送方{
    [self-textFieldShouldReturn:_usernameEntry];
    NSString*user=[\u usernameEntry text];
    NSString*pass=[[u passwordEntry text];
    如果([用户长度]<4 | |[传递长度]<4){
    UIAlertView*alert=[[UIAlertView alloc]initWithTitle:@“无效输入”消息:@“用户名和密码必须至少有4个字符长。”委托:自取消按钮提示:@“好”其他按钮提示:无];
    [警报显示];
    }否则{
    [_ActivityIndicatorStartAnimating];
    [PFUser logInWithUsernameInBackground:用户密码:密码块:^(PFUser*用户,NSError*错误){
    [_activityIndicator停止设置动画];
    如果(用户){
    NSLog(@“成功登录”);
    //[self-PerformsgueWithIdentifier:@“loginToMainAppSegue”发件人:self];
    [self-PerformsgueWithIdentifier:@“loginToMediaCaptureVC”发件人:self];
    }否则{
    NSLog(@“%@”,错误);
    UIAlertView*alert=[[UIAlertView alloc]initWithTitle:@“登录失败”。消息:@“用户名和/或密码无效”。委托:自我取消按钮:@“好”其他按钮:无];
    [警报显示];
    }
    }];
    }
    }
    
    我已经将我的视图控制器设置为代理,两个文本字段都工作得很好,但是我想添加上面列出的额外功能

    如果有区别的话,文本字段和键盘不是通过编程创建的。它们是在故事板上创建的


    感谢您的帮助。

    步骤1-为两个文本字段都添加标记

    步骤2-检查
    -(BOOL)textField中的标记应返回:(UITextField*)textField

    如果第一个用户名处于活动状态,则使密码文本字段
    成为第一响应者。
    如果密码字段处于活动状态
    退出第一响应者

    -(BOOL)textFieldShouldReturn:(UITextField*)textField;
    {
      if([_txtFieldUserName isFirstResponder]){
    
        [_txtFieldPassword becomeFirstResponder];
      }
      else if ([_txtFieldPassword isFirstResponder]){
    
        [_txtFieldPassword resignFirstResponder];
      }
    }
    

    步骤1-为两个文本字段都添加标记

    步骤2-检查
    -(BOOL)textField中的标记应返回:(UITextField*)textField

    如果第一个用户名处于活动状态,则使密码文本字段
    成为第一响应者。
    如果密码字段处于活动状态
    退出第一响应者

    -(BOOL)textFieldShouldReturn:(UITextField*)textField;
    {
      if([_txtFieldUserName isFirstResponder]){
    
        [_txtFieldPassword becomeFirstResponder];
      }
      else if ([_txtFieldPassword isFirstResponder]){
    
        [_txtFieldPassword resignFirstResponder];
      }
    }
    

    对于UITextField或可编辑UITextVie,您还可以执行以下操作:

    [myTextField setReturnKeyType:UIReturnKeyNext];
    
    您还可以在Interface Builder中的文本字段/视图的文本输入特征下配置此选项

    更新

    在Xamarin.iOS或Monotouch中:

    myTextField.ReturnKeyType = UIReturnKeyType.Next;
    

    对于UITextField或可编辑UITextVie,您还可以执行以下操作:

    [myTextField setReturnKeyType:UIReturnKeyNext];
    
    您还可以在Interface Builder中的文本字段/视图的文本输入特征下配置此选项

    更新

    在Xamarin.iOS或Monotouch中:

    myTextField.ReturnKeyType = UIReturnKeyType.Next;
    

    你能提供更多的代码吗?我明白你的意思,但我不知道如何键入代码。没关系,我刚知道。谢谢帕万的帮助!你能提供更多的代码吗?我明白你的意思,但我不知道如何键入代码。没关系,我刚知道。谢谢帕万的帮助!