UIAlertController 添加alertController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self addViews];
}
- (void)addViews{
_tjView = [[TjjSubView alloc] init];
[self.view addSubview:_tjView];
}
- (void)viewWillLayoutSubviews{
_tjView.frame = CGRectMake(20, 100, self.view.bounds.size.width-40, 40);
}
- (void)addAlertController{
UIAlertController *alertController =[UIAlertController alertControllerWithTitle:@"标题" message:@"这是一个UIAlertController" preferredStyle:UIAlertControllerStyleAlert];
/*typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
UIAlertControllerStyleActionSheet = 0, 竖排
UIAlertControllerStyleAlert 横排
} NS_ENUM_AVAILABLE_IOS(8_0);
*/
//添加文本输入框,以登陆和密码对话框例子
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder =@"登陆";
}];
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @"密码";
}];
//如果要监听uiTextField开始、结束、改变状态、则需要添加监听代码
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @"添加监听代码";
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(alertTextFieldDidChange:) name:UITextFieldTextDidChangeNotification object:textField];
}];
UIAlertAction * cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
// UIAlertAction * defaultAction = [UIAlertAction actionWithTitle:@"默认Default" style:UIAlertActionStyleDefault handler:nil];
// UIAlertAction * resetAction = [UIAlertAction actionWithTitle:@"重置Destructive" style:UIAlertActionStyleDestructive handler:nil];
UIAlertAction * getAction = [UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
UITextField * login =alertController.textFields[0];
UITextField * password = alertController.textFields[1];
[self.view endEditing:YES];
NSLog(@"%@,%@",login,password);
}];
[alertController addAction:getAction];
[alertController addAction:cancelAction];
// [alertController addAction:defaultAction];
// [alertController addAction:resetAction];
[self presentViewController:alertController animated:YES completion:nil];
}
- (void)alertTextFieldDidChange:(NSNotification *)notification{
UIAlertController *alertController = (UIAlertController *)self.presentedViewController;
if (alertController) {
//下标为2的是添加了监听,也是最后一个alertController.textField.lastObject;
UITextField * listen = alertController.textFields[2];
//限制,如果listen输入长度要限制在5个字,否则不允许点击默认Default键
//当UITextField输入字数超过5个,按钮变灰色,enabled为NO
UIAlertAction *action = alertController.actions.lastObject;
action.enabled = listen.text.length<=5;
}
}