• UIAlertController(警告栏) 自学之初体验


    UIAlertController有两种样式  preferredStyle:

    UIAlertControllerStyleAlert (位于屏幕的中部)

    UIAlertControllerStyleActionSheet(位于屏幕的下方)
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"标题" message:@"默罕默德~本拉登" preferredStyle:UIAlertControllerStyleAlert];  //UIAlertController的创建

    UIAlertAction是UIAlertController的按钮样式
    title按钮的名称,style按钮的样式,handler处理层序(点击按钮执行的代码)
        UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消cancel" style:UIAlertActionStyleCancel handler:nil];
        UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"默认" style:UIAlertActionStyleDefault handler:nil];
        UIAlertAction *resetAction = [UIAlertAction actionWithTitle:@"重置" style:UIAlertActionStyleDestructive handler:nil];
        //添加按钮到UIAlertController上
        [alert addAction:cancelAction];
        [alert addAction:defaultAction];
        [alert addAction:resetAction];

     1、文本输入框只能添加到Alert的风格中,ActionSheet是不允许的;

     2、UIAlertController具有只读属性的textFields数组,需要可直接按自己需要的顺序添加;

     3、添加方式是使用block,参数是UITextField;

     4、添加UITextField监听方法和实现方法。

        //添加文本输入框
        [alert addTextFieldWithConfigurationHandler:^(UITextField *textField){
            textField.placeholder = @"登陆";
            //可以为textField添加事件
        }];
        [alert addTextFieldWithConfigurationHandler:^(UITextField *textField){
            textField.placeholder = @"密码";
            textField.secureTextEntry = YES;
            //可以为textField添加事件
        }];

    添加一个事件可以用来输出用户名和密码(textFields是属性,是一个数组)

    UIAlertAction *getAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
                UITextField *login = alert.textFields[0];
                UITextField *passWord = alert.textFields[1];
                NSLog(@"登陆:%@   密码:%@",login.text,passWord.text);
            }];//获取textField的文本内容
            [alert addAction:getAction];


    如果要监听textField开始,结束,改变状态,需要添加监听代码
        [alert addTextFieldWithConfigurationHandler:^(UITextField *textField){
                textField.placeholder = @"添加监听代码";
                [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(alertTextFieldDidChange:) name:UITextFieldTextDidChangeNotification object:textField];
            }];
        [self presentViewController:alert animated:YES completion:^{
        }];  //模态推送到页面上

    //监听的方法
    -(void)alertTextFieldDidChange:(NSNotification *)notification{
        UIAlertController *alertController = (UIAlertController *)self.presentedViewController;
        if (alertController) {
            //为textFields数组中下标为2的textField为监听对象
            //也是alertController.textFields.lastObject
            UITextField *listen = alertController.textFields[2];
            //限制,如果listen限制输入长度在5个字符内,否则不允许点击默认Defult键
            //当UITextField输入字数超过5个,按钮变灰色,enable为NO
            UIAlertAction *action = alertController.actions.lastObject;
            action.enabled = listen.text.length<=5;
        }

  • 相关阅读:
    设计模式原则—依赖倒转原则(三)
    设计模式原则—单一职责原则(二)
    一步一个脚印学习WCF系列之WCF基础术语—契约的名称与命名空间(二)
    命名规范汇总文档供下载
    BCM平台全自动刷机软件,TFTP正式版1.62隆重发布,增加固件记忆功能
    WayOs内置免拉黑,就是把免拉黑程序集成在WayOs内部,增加守护进程及修改访问参数立即生效
    WayOs帐号获取保存工具增加提交的功能,WayOs扩展WAN口工具1.6发布增加网卡和VLAN混合组网功能
    好奇:WayOs破解、OEM、修复、打包等工具大全,满足大家的好奇心发下截图
    WayOs PPPoE群集服务器:自动同步用户信息,包括增加,更新,同步操作!保证多台服务器数据同步
    WayOs全面支持安卓手机,防二级路由开关、充值卡到期自动跳转页面功能隆重发布
  • 原文地址:https://www.cnblogs.com/LE-Quan/p/5145566.html
Copyright © 2020-2023  润新知