我正在使用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按钮时会发生同样的事情。我怎么能这样做?
提前致谢!
答案 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;
}