自动弹出pickerview
UIPickerView是开发中常用的控件,日期选择、年龄选择、城市的多级联动等等都会使用,它一般是在点击某个按钮后出现,展现方式和UITextView一样,从页面底部弹出,选中后或者点击控件以外区域自动缩回。
系统原生的picker view是不支持自动弹出收回的,所以我们要对它进行一下改造。
思路:为了模仿键盘的弹出收回效果,我们设置一个UITextView,点击它就能吊起键盘。UITextView有一个inputview,我们只要将其替换成自己需要的picker view即可。
效果图
主要代码:新建一个View继承与UIView,定义两个视图textView合pickerView。然后创建他们,如下:
- (void)createContentView {
self.textView = [[EXNoPasteTextField alloc] initWithFrame:self.bounds];
self.textView.font = self.textFont;
self.textView.autocorrectionType = UITextAutocorrectionTypeNo;
[self addSubview:self.textView]; _pickerView = [[UIPickerView alloc] init];
self.pickerView.dataSource = self;
self.pickerView.delegate = self;
self.textView.inputView = _pickerView; UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(, , [UIScreen mainScreen].bounds.size.width, )];
toolBar.barStyle = UIBarStyleDefault; UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneTouched:)];
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelTouched:)]; // the middle button is to make the Done button align to right
[toolBar setItems:[NSArray arrayWithObjects:cancelButton, [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], doneButton, nil]];
self.textView.inputAccessoryView = toolBar;
}
手机端是完全没问题的,iPad端会展示联想和复制按钮,需要自定义一个继承UITextView的TextView,屏蔽其粘贴功能。
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
UIMenuController *menu = [UIMenuController sharedMenuController];
if (menu) {
menu.menuVisible = NO;
} return NO;
}
需要源码的,可以去我的GitHub:https://github.com/zhanghua0926/EXPickerTextView
自动弹出pickerview的更多相关文章
- 如何让UIViewController自动弹出PickerView
因为响应者的一下属性inputView和inputAccessoryView都是只读的,所以如果想要指定弹出的view就要override 下面两个属性的get和set方法 UIResponder ( ...
- jquery右下角自动弹出关闭层
效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/36.htm 右下角弹出层后,会在一定时间后自动隐藏.第一版本:http://www.cnblogs.com/ ...
- vs安装后当切换到图形设计界面的时候自动弹出“正在准备安装的提升”,然后程序处于假死状态
Vs2008 安装后当切换到图形设计界面的时候自动弹出 ”正在准备安装的提示“,然后程序处于假死状态 在网上找了很多,最终解决问题: 从vs2008安装光盘中找到 /WCU/WebDesignerC ...
- js实现打开网页自动弹出添加QQ好友邀请窗口
我们有时进一些网面或专题页面会自动弹出一个加为好友的对话框了,在研究了很久之后发现可以直接使用js来实现,下面我们一起来看js实现打开网页自动弹出添加QQ好友邀请窗口的方法. 第一步.JS脚本 这个是 ...
- AndroidTips:解决Dialog全屏显示以及Dialog显示自动弹出输入法
继承实现一个dialog,并在onCreate里面做处理. @Override protected void onCreate(Bundle savedInstanceState) { s ...
- 打开网页自动弹出QQ对话框的实现办法
Ian今天偶然进入一个公司的企业网站,然后QQ聊天窗口这里马上就弹出与那个公司客服聊天的窗口.怀着好奇的心态,Ian分析了该公司的网站源码,发现了实现网页弹出qq对话框的原理与实现方法,相信此时此刻你 ...
- PL/SQL Developer去掉启动时自动弹出的Logon弹出框方法
以前用PL/SQL Developer 7.0版本,最近升级到PL/SQL Developer 11.0版本,但每次启动PL/SQL Developer都会自动弹出Logon窗口,并且选中其中的登录历 ...
- 关闭Eclipse中自动弹出console的功能
当我们使用Eclipse编写代码的时候,一般都会使界面最大化,如果这时tomcat服务器处在运行的状态,那么当后台有打印内容,比如日志输出,代码程序报错输出时,console就会自动弹出,很不方便. ...
- [转]android自动弹出软键盘(输入键盘)
转自:http://www.devdiv.com/home.php?mod=space&uid=65729&do=blog&id=11847 很多应用中对于一个界面比如进入搜索 ...
随机推荐
- openlayers3 基础(常见方法,类及实现)
ol3接口大全1.ol.Map类:(地图容器类) 实现: ol.Map(参数) 参数说明:1.1 target,说明地图所在的html元素. 如果没有指定,必须调用ol.Map类的setTarget( ...
- 【Java】递归递推的应用
利用阶乘公式来计算组合式: 程序设计思想: 根据公式来计算组合数的大小,从键盘输入n,k的值,设计一个计算阶乘的大小,如果输入的数a为1或0,则直接return 1,否则运用递归,计算a-1的阶乘,直 ...
- char
1 char是多少位的 2 java用的是什么方式表示字符 3 Unicode是用多少位表示的 1的答案是16位的,2的答案是Unicode,3的答案是16位 值得注意的是,2的答案并不是utf-8 ...
- 深度好文 | 在阿里做了5年技术Leader,我总结出了这些套路!
导读:阿里巴巴高级技术专家云狄将为大家从管理的角度分享技术TL的核心职责,这其中包括团队建设.团队管理.团队文化.沟通与辅导.招聘与解雇等,希望与大家共同探讨.交流. 背景 互联网公司的技术团队管理通 ...
- Codeforces 785 - A/B/C/D/E - (Undone)
链接:https://codeforces.com/contest/785 A - Anton and Polyhedrons #include<bits/stdc++.h> using ...
- mac chrome 强制刷新浏览器缓存
普通刷新 command + r 强制刷新 command + shift + r
- es6 中的 symbol
symbol 的引入是为了解决对象中的属性名冲突的问题 使用symbol() 函数生成的变量值不与任何的变量值相等, 所有用改变量的值做属性名是不会冲突的 symbol 可以转化为字符串, 可以转化 ...
- SENG201 (Software Engineering I) Project
SENG201 (Software Engineering I) ProjectSpace ExplorerFor project admin queries:For project help, hi ...
- kubernetes集群应用部署实例
今天,我们将要带来入门hello world示例,它是一个web留言板应用,基于PHP+Redis的两层分布式架构的web应用,前端PHP web网站通过访问后端Redis数据库完成用户留言的查询和添 ...
- ln -s软链接文件算文件吗
场景: 开发A在windows环境下完成了开发,配置管理员cm搭建jenkins在centos环境下编译,cm编译失败,但是开发A在他的windows环境下可以编译过,最后发现是某几个so文件的软链接 ...