UIAlertViewStylePlainTextInput返回键委托

Cyb*_*erK 14 iphone xcode ios 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];
Run Code Online (Sandbox Code Playgroud)

我现在使用的代表是:

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

现在我想模拟回车键,所以当用户按下键盘返回时,按下警报的OK按钮就会发生同样的事情.我怎样才能做到这一点?

提前致谢!

jac*_*ash 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];
Run Code Online (Sandbox Code Playgroud)

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

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

  • 谢谢...每天编程15小时真的让人忘记了明显的事情;-) (2认同)