如何在另一个textField的alertView之后将焦点移动到Textfield

时间:2013-06-04 10:15:19

标签: ios objective-c uitextfield uitextfielddelegate

在我的添加联系人页面中,我正在验证我的电子邮件文本字段,电话号码字段等。并在点击所有其他文本字段时检查有效的电子邮件。因此,当我点击电话号码字段时,它将检查电子邮件的有效性并在电子邮件无效时显示警报视图。因此,当我在alertView中单击“确定”按钮时,光标应该转到电子邮件文本字段,而不是在电话号码字段中。任何人都可以帮忙吗?

5 个答案:

答案 0 :(得分:2)

用于制作任何文本字段的第一响应者。您可以在alertview委托中执行此操作。

  

[yourTxtField becomeFirstResponder];

答案 1 :(得分:1)

您可以设置AlertView的委托,然后单击“确定”按钮,

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
      if (buttonIndex == 0) {
         [txtEmail becomeFirstResponder]; // your "Email" textField will get focused
    }
}

试试这个.. HTH:)

答案 2 :(得分:1)

在alertview的委托方法中,

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if([alertView isEqual:emailAlert])//emailAlert should be the instance variable
    {
       if(buttonIndex == 0)//assumes ok button index is 0
       {
             [textfield becomeFirstResponder];
       }
    }
}

答案 3 :(得分:1)

让您的视图控制器实现UIAlertViewDelegate,并将当前类作为委托添加到显示的警报视图中。在– alertView:clickedButtonAtIndex:中,使电话文字字段重新响应第一响应者并使电子邮件文本字段成为第一响应者。

答案 4 :(得分:1)

确保您的类符合UIAlertViewDelegate协议并显示类似

的警告
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Your Message" delegate:self cancelButtonTitle:@"cancel " otherButtonTitles:@"OK", nil];
[alert show];
[alert release];

实现委托方法,如

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if(buttonIndex == 0)//ok button index is 0
       [textFieldEmail becomeFirstResponder];
}