-6

i have 4 text fields , i want to parform following actions by clicking on return key -

1- when i enter entry in one field and press return key , curser should be jumped on next

TextField .

Thanks .

rmaddy
  • 314,917
  • 42
  • 532
  • 579

3 Answers3

0

Implement UITextField delegate and set tag value to all your textField in series. like 1,2,3..as so on. then, make sure scrollView and textField tag values should not conflict.

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    int nextTextFieldTag = textField.tag+1;
    UITextField *textFieldd = (UITextField*)[self.view viewWithTag:nextTextFieldTag];
    if (textFieldd!=nil) {
        if ([textField isKindOfClass:[UITextField class]]) {
            [textFieldd becomeFirstResponder];
            return NO;
        }
    }
    return YES;
}
Rajneesh071
  • 30,846
  • 15
  • 61
  • 74
0

Try this

Take the 4 textfields as textfield1,textfield2,textfile3,textfield4 .

In the textfield delegate method

 - (BOOL)textFieldShouldReturn:(UITextField *)textField 
{

    if([textField isEqual:textfield1]) 
    {
     [textfield2 becomeFirstResponder];
      return NO;
    }

    else if([textField isEqual:textfield2]) 
    {
     [textfield3 becomeFirstResponder];
      return NO;
    }

        // Do for other textfields
    return YES;
}
SRI
  • 1,514
  • 21
  • 39
-2

You just need to know what the next TextField should be and have UITextFieldDelegateProtocol especially the - (BOOL)textFieldShouldReturn:(UITextField *)textField implemented.

In - (BOOL)textFieldShouldReturn:(UITextField *)textField simply figure out the next TextField and do [nextTextField becomeFirstResponder];


So the - (BOOL)textFieldShouldReturn:(UITextField *)textField Method could look like this:

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{

    if ([textField isEqual:firstTextField]) {
        [secondTextField becomeFirstResponder];
    } 

    //When last textfield dismiss the keyboard
    else if ([textField lastTextField]) {
        [textField resignFirstResponder];
    }

    return NO;
}
lukaswelte
  • 2,951
  • 1
  • 23
  • 45