我正在为 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];
我现在使用的委托(delegate)是:
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (alertView.tag == 1234) {
if (buttonIndex == 1)
{
//do something
}
}
}
}
现在我想模拟回车键,所以当用户按下键盘上的回车键时,按下警报的 OK 按钮时会发生同样的事情。我该怎么做?
提前致谢!
最佳答案
确保您的类(class)符合 <UITextFieldDelegate>
协议(protocol),使 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 文件中实现下面的委托(delegate)方法并告诉警报消失:
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[self.scanCode dismissWithClickedButtonIndex:self.scanCode.firstOtherButtonIndex animated:YES];
return YES;
}
关于iphone - UIAlertViewStylePlainTextInput 返回键委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8994368/