UIAlertViewStylePlainTextInput返回键委托

时间:2012-01-24 21:23:13

标签: iphone ios xcode ios5

我正在使用UIAlertView的新iOS 5功能之一。我创建了一个像这样的UIAlertView:

UIAlertView *scanCode = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Some Title", @"") message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:NSLocalizedString(@"OK", @""), nil];
        [scanCode setAlertViewStyle:UIAlertViewStylePlainTextInput];
        scanCode.tag = 1234;
        [scanCode show];
        [scanCode release];

我现在使用的代表是:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (alertView.tag == 1234) {
        if (buttonIndex == 1)
        {
            //do something
            }
        }
    }
}

现在我想模拟回车键,所以当用户点击键盘返回时,按下警告的OK按钮时会发生同样的事情。我怎么能这样做?

提前致谢!

1 个答案:

答案 0 :(得分:29)

确保您的班级符合<UITextFieldDelegate>协议,为您的班级设置UIAlertView属性,并将以下行添加到您的设置代码中......

self.scanCode = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Some Title", @"") message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:NSLocalizedString(@"OK", @""), nil];
[self.scanCode setAlertViewStyle:UIAlertViewStylePlainTextInput];
self.scanCode.tag = 1234;
//add this...
[[self.scanCode textFieldAtIndex:0] setDelegate:self];
[self.scanCode show];

通过成为输入文本字段的委托,您可以找到按下键盘上的返回键的时间。然后在您的类的.m文件中,您实现下面的委托方法并告诉警报消失:

-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    [self.scanCode dismissWithClickedButtonIndex:self.scanCode.firstOtherButtonIndex animated:YES];
    return YES;
}