关于UITextfield弹出键盘解决方案
解决的问题:当你点击一个UITextfield时,不想让其弹出键盘,如果你觉得不就是取消其第一响应者嘛,resignRespond一下不就行了嘛,确实,如果你只是在其编辑完成后让其键盘消失,那这个就够了,但是如果你想在编辑前让其消失呢?阐述下自己遇到的情况先:就是需要做一个地区的输入框(是一个UITextfield),但可以分自动获取和手动输入,当你第一次点击时,需要弹出block让你选择你输入类型,点击的实现是在UITextfield上添加addTarget一个UIControlEventEditingDidBegin类型监听。当然,接下来的操作是如果你直接点击编辑框是没有问题的,但是如果你点击了另外一个UITextfield后,已经弹出了键盘(ios中连续点击的是两个UITextfield控件,键盘是不会消失的,所以你也不会看到切换输入框时键盘连续弹入弹出),此时你若直接点击地区那个输入框,那么你的问题就来了,此时的键盘并不会消失,一种可能是你的弹出UI覆盖在键盘上面或者你的弹出UI被键盘覆盖。
解决方法:为了更好了了解解决的整个思路,同时避免被网上各种无厘头答案所误导,先来看下所需要了解的相关知识。
UITextfield上的相关方法属性:
enable:这是个继承自UIControl的属性,默认是YES,注释是 if NO, ignores touch events and subclasses may draw differently,也就是说当你设置为NO时,你添加的所有监听事件和在上面添加的属性都会失效。
editing:这是自带的属性,注释是A Boolean value indicating whether the text field is currently in edit mode,也就是YES和NO对应着上面的输入指示焦点。
addTarget上的4个点击监听类型,
UIControlEventEditingDidBegin:当文本控件中开始编辑时发送通知。
UIControlEventEditingChanged:当控件的值发生改变时,发送通知
UIControlEventEditingDidEnd : 当文本控件中编辑结束时发送通知。
UIControlEventEditingDidEndOnExit:当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。
如果你想对上面几个点击事件进行监听,你可以去实现UITextfieldDelegate的相应方法。
下面进入解决:
这个也可以分几种情况:
1.你的页面所有的UITextfield都需要在点击时消除掉键盘先的话,你可以直接用UITextfield的addTarget方法监听,代码如下:
[_mainView.sexInfoView.tailTextField addTarget:self action:@selector(setSex:) forControlEvents:UIControlEventEditingDidBegin];
同时,你实现代理方法:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
// 此处加入你想要执行的代码
return NO;
}
2.你的页面只有部分UITextfield需要,那么,此时你就不能通过UITextfield的监听方法了,那么你可以怎么做呢?你可以直接把监听事件改用gesture的监听就行了嘛,具体代码如下:
UITapGestureRecognizer *sexTap=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(setSex:)];
[_mainView.sexInfoView.tailTextFieldaddGestureRecognizer:sexTap];
总结:或许,看到最后你觉得其实也挺简单的嘛,可是如果你上网搜下,你就会发现这个问题困扰了很多人,而且很多的答案误导。。关于文中提到的UIControl,想要了解的话可以看下往期的博客,想要更加了解直接前往ios官网。
关于UITextfield弹出键盘解决方案的更多相关文章
- UITableView中cell里的UITextField不被弹出键盘挡住
UITableView中cell里的UITextField不被弹出键盘挡住 本人视频教程系类 iOS中CALayer的使用 效果如下: 源码: EditCell.h 与 EditCell.m // ...
- IOS开发之自定义系统弹出键盘上方的view(转载)
这篇文章解决的一个开发中的实际问题就是:当弹出键盘时,自定义键盘上方的view.目前就我的经验来看,有两种解决方法.一个就是利用UITextField或者UITextView的inputAccesso ...
- UI弹出键盘和收回键盘
点击textfield,会自动弹出键盘 要让键盘收回来,先设置个代理:[field setTextFieldDelegate:self]; 可设置成自己,也可设置成其他对象,只要在对应的类中,遵循U ...
- (Vue)移动端点击输入框,弹出键盘,底部被顶起问题
(Vue)移动端点击输入框,弹出键盘,底部被顶起问题:https://www.jianshu.com/p/210fbc846544 问题描述:Vue开发中,当我们相对于父视图的底部布局子控件时,需要用 ...
- [调整] Firemonkey TEdit 避免按下立即弹出键盘的问题
目前 Firemonkey 有一个问题,就是在 Edit 按下会立即弹出键盘,在红鱼儿的博客也提交了 QC: http://blog.sina.com.cn/s/blog_44fa172f0102vy ...
- 【小贴士】zepto find元素以及ios弹出键盘可能让你很头疼
前言 在此,我不得不说移动端的兼容问题很多,并且很令人头疼,这不,这个星期又有两个让我逮着了,一个是使用zepto过程中出现的问题,一个是ios虚拟键盘的问题 我这里做一次记录,以免以后忘了,同时希望 ...
- 关于Android中EditText自动获取焦点并弹出键盘的相关设置
在android开发中,关于EditText自动获取焦点弹出键盘,我们可能又是会有让键盘自动弹出的需求,有时可能又会有不想让键盘自动弹出的需求,下面是我所总结的两种方法: 需求:EditText自动获 ...
- fullpage插件在移动端弹出键盘页面特殊处理
fullpage插件大家都很熟悉 jquery一款全屏上下滑动的插件. 最近做公司一个活动移动端使用fullpage插件填写input的时候遇见一个问题,手机自带的键盘弹出的时候会把页面顶出去,页面错 ...
- EditText: EditText自动获取焦点并弹出键盘&EditText不自动获取焦点并且不会弹出键盘
1.EditText不自动获取焦点并且不会弹出键盘 找到EditText的父控件,设置其父控件为: Parent.setFocusable(true); Parent.setFocusableInTo ...
随机推荐
- hdu Just a Hook
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 线段树+lazy操作 线段树是从上到下开始建树,树状数组是从下到上建树.... 代码: ...
- crawler_UE使用技巧
UE使用技巧 Tip 1: 如何去掉所编辑文本中包含特定字符串的行? 这则技巧是在UltraEdit的帮助文件里提到.CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式&q ...
- HDU 4793 2013 Changsha Regional Collision[简单的平面几何]
圆形奖章给定半径的半径和圆形区域.另一个硬币的半径,然后在桌面上平稳.给定硬币的速(的大小和方向,vx,vy)和坐标(奖牌同心圆形区域,圆和心脏为源),Q币在一个圆形区域和多少下滑(不管是什么圆形区域 ...
- 【机器学习算法-python实现】KNN-k近邻算法的实现(附源代码)
,400],[200,5],[100,77],[40,300]]) shape:显示(行,列)例:shape(group)=(4,2) zeros:列出一个同样格式的空矩阵,例:zeros(group ...
- Oracle推断领域包括中国
假设你要推断领域包括中国.有一个简单的方法. SQL> drop table test purge; SQL> create table test as select * from dba ...
- C语言学习之路,第一篇章。
看的书是 C primer plus ,这本书好评很多, 学过C#,没有精通,了解Java,所以看这本书会很容易上手,编译器用的是VC++6.0,因为VS2010好像不支持C99标准,有些代码功能 ...
- git合并远端分支到本地分支的两种方式
作者:zhanhailiang 日期:2014-11-21 在使用版本号工具提交改动之前,都须要通过update先将本地代码更新到最新版本号.SVN通过svn update就能够实现,那么git怎样实 ...
- HTML页面的动画的制作及性能
原文:HTML页面的动画的制作及性能 WEB页面的动画的制作及性能 简介 目前WEB页面做动画的方式大的分两种1.JS间隔时间不断修改元素属性值,这也是CSS3出来前常用的做法,貌似也是唯一的做法.2 ...
- Android自动化测试框架新书:交流
大家觉得编写一本描述MonkeyRunner原理分析的书籍如何?估计大概10万字左右.内容大概分布如下: Monkey实现原理: 去描述运行在目标安卓机器的monkey是如何运行并处理MonkeyRu ...
- Visual Studio 2015环境
Visual Studio 2015环境搭建 2014年11月13日,微软发布了Visual Studio 2015 Preview,跟随者Visual Studio 2015 而来的是,.net 开 ...