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;
}
UIAlertController(警告栏) 自学之初体验的更多相关文章
- UIPickerView(选择控制器) 自学之初体验
UIPickerView 是一个选择器控件, 它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活.UIPickerView 直接继承了 UIView ...
- iOS7 初体验
iOS7 初体验 近日来由于iOS7的发布,引来业界的各种吐槽. 为了体验一把,我已经把iPhone5刷成了iOS7,也下载Xcode5-DP并进行了测试.我想说的是iOS7与Xcode5-DP中新增 ...
- 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
- python--爬虫入门(七)urllib库初体验以及中文编码问题的探讨
python系列均基于python3.4环境 ---------@_@? --------------------------------------------------------------- ...
- iOS7初体验(3)——图像资源Images Assets
开始之前,首先回顾一下iOS7初体验(1)——第一个应用程序HelloWorld中的一张图,如下所示: 本文便分享一下Images.xcassets的体验~_~ 1. 打开此前使用过的HelloWor ...
- OPhone SDK初体验
OPhone SDK初体验 write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 背景说明 中国伟大的垄断龙头,世界上也是顶尖的中移动最 ...
- Git 使用初体验
http://my.oschina.net/moooofly/blog/228608 很久之前在 http://git.oschina.net/ 上创建了一个私有项目 modb ,目的主要是用来学习如 ...
- vue.js2.0 自定义组件初体验
理解 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.在有些情况 ...
- PHP初体验
PHP初体验 提笔写初体验总不知道从何说起,直接聊PHP中的函数.PHP网络技术.数据库操作.PHP模板等感觉又不是初体验.最后还是决定从PHP的面向对象.PHP的魔术方法.PHP的反射.PHP中的异 ...
随机推荐
- Objective-C 字典、可变字典
字典相当于c++ stl中的map 字典NSDictionary #import <UIKit/UIKit.h> #import "AppDelegate.h" int ...
- Struts2 技术全总结 (正在更新)
背景:Struts1是一个高度成熟的框架,运行效率高,但其致命缺陷在于与JSP/Servlet的耦合非常紧密,因而导致了一些严重问题.其次,Struts1与Servlet API的严重耦合,使应用难以 ...
- 让footer在底部(测试它人方法)
要求:网页布局中,页脚在底部.内容不够一页时,在底部.内容超过一页时,出现卷动条,页脚也在被挤到底部 1.测试的这个文章介绍的办法 链接: http://www.cnblogs.com/cheny ...
- 数组对象-new Array
声明空数组 var arr = new Array(); 声明指定长度的数组 var arr = new Array(5) 声明初始值的数组 var a ...
- java.lang.NoSuchMethodError: main Exception in thread "main"
java.lang.NoSuchMethodError: main Exception in thread "main" 一般是主函数出问题 检查核对一下 public stati ...
- Effective Java2读书笔记-类和接口(五)
第21条:用函数对象表示策略 这一条其实也没说啥,就是策略模式.碰到这种场景时,定义一个策略接口,然后不同策略子类实现它,主类包含这个接口的引用就可以了. 第22条:优先考虑静态成员类 嵌套类是指被定 ...
- js django 数据互动
后台传输到客户端的数据怎么跟js进行互动 eval("("+{{data|safe}}+")") 获取到的数据可以直接使用 eval 有时候会存在编码问题所以推 ...
- paip.Adblock屏蔽onlinedown华军软件园的4秒下载广告总结..
paip.Adblock屏蔽onlinedown华军软件园的4秒下载广告总结.. 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址 ...
- MessagerService总结
一.整体工程图 二.messenger_service_binding.xml <?xml version="1.0" encoding="utf-8"? ...
- 车的UML图
车的UML图,涉及到集合与泛化的东东. UML统一建模语言,通过图能够很好的分析问题.
