我创建了一个UIAlertView,其alertViewStyle
设置为UIAlertViewStylePlainTextInput
。
我想更改键盘类型,但不是通过添加子视图。
我的代码:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"a" message:@"b" delegate:nil cancelButtonTitle:@"cancel" otherButtonTitles:@"aaa", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
答案 0 :(得分:41)
如果您想要呈现输入样式,首先要在您的班级中实现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
})