在UIAlertView中更改UITextField的键盘类型
我创建了一个UIAlertView,其alertViewStyle
设置为UIAlertViewStylePlainTextInput
。
我想更改键盘类型,但不是通过添加子视图。
我的代码:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"a" message:@"b" delegate:nil cancelButtonTitle:@"cancel" otherButtonTitles:@"aaa", nil]; alert.alertViewStyle = UIAlertViewStylePlainTextInput; [alert show];
如果您想要呈现输入样式,首先在您的类中实现UIAlertViewDelegate 。
其次,当您呈现alertView时,将委托设置为self。
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"a" message:@"b" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"aaa", nil]; alert.alertViewStyle = UIAlertViewStylePlainTextInput; [alert show];'
如果要更改特定字段的键盘类型,请执行此操作
例如,对于第一场,它将使键盘数字化。
[[alert textFieldAtIndex:0] setKeyboardType:UIKeyboardTypeNumberPad]; [[alert textFieldAtIndex:0] becomeFirstResponder];
更新iOS 8.0 Swift
从ios 8.0开始,不推荐使用UIAlertView
,因此您可能需要使用UIAlertController
var alert = UIAlertController(title: "Title", message: "Your msg", preferredStyle: UIAlertControllerStyle.Alert) alert.addAction(UIAlertAction(title: "Close", style: UIAlertActionStyle.Cancel, handler:yourHandler)) alert.addTextFieldWithConfigurationHandler({(textField: UITextField!) in textField.placeholder = "Password" textField.secureTextEntry = true // setting the secured text for using password textField.keyboardType = UIKeyboardType.Default })