首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在UITextField - IOS之外点击时关闭键盘的最佳方式

是通过使用UITapGestureRecognizer来监听用户在屏幕上的点击事件,并在点击事件发生时关闭键盘。

具体步骤如下:

  1. 创建一个UITapGestureRecognizer对象,并将其添加到视图控制器的视图上。
代码语言:swift
复制
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap))
view.addGestureRecognizer(tapGesture)
  1. 在handleTap方法中,检查点击事件的位置是否在UITextField之外,并调用resignFirstResponder方法关闭键盘。
代码语言:swift
复制
@objc func handleTap() {
    if !textField.frame.contains(tapGesture.location(in: view)) {
        textField.resignFirstResponder()
    }
}

这种方式可以在用户点击UITextField之外的任何地方时关闭键盘,提供了良好的用户体验。

推荐的腾讯云相关产品:腾讯云移动推送

腾讯云移动推送是一款为移动应用提供消息推送服务的云服务产品。它提供了多种消息推送方式,包括通知栏消息、透传消息、静默消息等,可以满足不同场景下的推送需求。腾讯云移动推送支持iOS、Android等多个平台,可以帮助开发者快速实现消息推送功能,提升用户留存和活跃度。

产品介绍链接地址:https://cloud.tencent.com/product/mpns

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS UI控件了解一下

iOS开发及测试中,除了业务逻辑和算法之外,UI控件是最重要一部分,因此熟悉UI控件及实现原理,对于了解开发实现和测试是相当必要,这篇文章将给大家介绍常用UI控件及实现。...App中UITextField出现频率也比较高; (2)iOS系统借助虚拟键盘实现输入,当点击输入框,系统会自动调出键盘,方便 你进一步操作。...在你不需要输入时候,可以使用收回键盘方法,收回弹出键盘; (3)UITextField和UILabel相比,UILabel主要用于文字显示,不能编辑, UITextField允许用户编辑文字(输入...5)文本显示: UITextField提供了许多API方便我们控制文本显示,包括字体颜色、对齐方式、占位符等等(详见下表) ?...(1)UIButton(按钮):是响应用户点击控件。App中UIButton是出现频率很高控件; (2)UIButton与UILabel、UITextField侧重点不同,侧重于处理点按。

2.6K20

1.注册或登录页面设计:UILabel,UIButton,UITextField

学习iOS开发已经有一段时日了,之前一直没有系统iOS开发相关知识进行归纳总结,导致很多知识点云里雾里脑子里形不成iOS开发思想,现将自己在学习过程中遇到一些知识进行总结,希望能对iOS初学者能有一定帮助...作为iOS开发入门总结第一篇,这里以最常见注册或登陆页面设计作为开篇,这里主要会用到UILabel,UIButton,UITextField这三个控件。...一.注册或登录界面 如下图,实现了一个注册或登录界面,这里先只介绍单个页面,不介绍点击“完成”按钮后动作,之后系列《iOS开发入门总结》中会逐步介绍,等基础知识介绍差不多了,就可以以一个完整注册系统作为小结...说明: 这里为了展现UITextField文本框关联键盘设置,这里把“密码”和“确定密码”关联键盘都设置为数字键盘,实际应用中密码一般都允许为数字或字母。 实现了键盘收回操作。...text.textAlignment = UITextAlignmentLeft; //内容垂直对齐方式 UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment

2.3K50

iOS学习——键盘弹出遮挡输入框问题解决方案

iOS或Android等移动端开发过程中,经常遇到很多需要我们输入信息情况,例如登录要输入账号密码、查询要输入查询信息、注册或申请需要填写一些信息等都是通过我们键盘来进行输入iOS开发过程中...UITextFieldDelegate官方文档中解释道:我们可以通过代理中一些方法实现UITextField键盘调用,从而实现和用户进行交互方法,此外,还可控制UITextField输入过程...关于收起键盘,我们通常有两种做法如下: 一是通过我们键盘【return/完成】按键点击事件来设置 二是设置点击空白处就收起键盘,这种方法现在比较普遍   这两种做法UITextField和UITextView...  还是之前分析中,我们知道键盘弹出和收起,系统都会发出对应通知,所以我们可以收到键盘弹出时候判断键盘位置和当前输入文本框位置,如果有遮挡,就将当前视图进行一个向上平移,收到键盘回收通知就平移到原先位置...,然后键盘弹出通过为止比较确定是否平移,以及平移offset。

3.5K60

iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

; -- 高亮 : UI 控件突出显示, 处于高亮状态; 手放在按钮上处于高亮状态; -- 禁用 : UI 控件关闭后, 处于禁用状态; 禁用状态控件不可操作, 禁用操作 Interface Builder...触摸背景关闭虚拟键盘 (1) 修改 Custom Class  修改背景类别 :  -- 修改原因 : 默认背景控件 UIView, 该控件没有 IBAction 事件, 因此需要将背景控件设置为...UITextView 虚拟键盘关闭 (1) 需求分析 UITextView 与 UITextField 中使用虚拟键盘对比 :  -- UITextField 虚拟键盘 : 右下角键是 Done,...; (2) 点击背景控件关闭虚拟键盘 点击背景控件关闭虚拟键盘 :  -- 1....Done 即可关闭按钮; (4) 自定义键盘附件关闭虚拟键盘 自定义键盘附件 :  -- 作用 : 不是所有的应用都有导航栏, 没有导航栏应用中, 需要有键盘附件来关闭键盘; -- 1.

6.6K20

iOS 键盘删除键响应

iOS 键盘删除键响应 背景 背景是,实现一个分享到微信,多选加输入框,点击键盘删除键,删除多选选中对象东西。...,当当前字符串为空且要替换字符串为空,说明是点击删除按钮,通过Block方法回掉出去,代码如下: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange...然后,笔者就查了一下,可以通过runtime,来获取到deleteBackward事件,通过hook此事件,可以获取到点击键盘删除按钮事件,代码如下: // UITextField+BackSpace.h...测试后可以发现点击键盘删除键,代理方法确实响应了,代码如下: @interface TargetView () @property (nonatomic, strong...点击删除,字符和多选一同被删除了,而我们需要最后一个字符删除后,再次点击删除才应该操作多选。

24620

iOS-UITextField 全面解析iOSUITextField 使用全面解析UITextField代理方法通知UITextField storyboard 中设置属性

iOSUITextField 使用全面解析 建议收藏,用到时候来这里一查就都明白了 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField...= self;  声明text代理是我,我会去实现把键盘往下收方法 这个方法UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议 - (void)...//开始编辑触发,文本字段将成为first responder } - (BOOL)textFieldShouldReturn:(UITextField *)textField { // 当点击键盘返回键...2、Placeholder : 可以文本框中显示灰色字,用于提示用户应该在这个文本框输入什么内容。当这个文本框中输入了数据,用于提示灰色字将会自动消失。...18、Auto-enable Return Key : 如选择此项,则只有至少文本框输入一个字符后键盘返回键才有效。

7.1K60

iOS键盘、选取器上工具栏

前言 我们使用键盘时候,在打字完毕后想要收起键盘继续操作,要么是习惯性点击界面空白处收起键盘,要么是键盘上方点击一个“完成”之类按钮来收起键盘。...Android上键盘完成按钮是自带,但是iOS没有,所以需要开发者自行添加上去一个,这里就要用到工具栏UIToolbar。...同样,使用选取器时候,最常见就是选择省市区,选择完毕后我们想要收起选取器,一种做法时点击空白界面来唤起一个响应,另一种更常见做法还是自行添加一个工具栏上去,因为这时往往需要两个按钮,一个“取消...键盘上添加收起按钮 先看看效果: 可以看到,键盘上面有一条工具栏,最左边有一个小图标,是键盘形状点击那个图标后,就会收起键盘,这个按钮并不是自带,是我添加上去。...[textField isEqual:self.pickerText]) {// 避免与选取器工具栏起冲突,只键盘输入框添加 //键盘上添加toolbar工具条 点击工具条中按钮回收键盘

1.4K10

iOS UITextField 使用与方法解读

UITextFieldIOS开发中用户交互中重要一个控件,常被用来做账号密码框,输入信息框等。...(nonatomic,copy)  NSAttributedString  *attributedPlaceholder; 设置是否开始编辑清空输入框内容 @property(nonatomic)...*inputAccessoryView; 这个属性设置是否允许再次编辑在内容中间插入内容 @property(nonatomic) BOOL clearsOnInsertion; 注销第一响应(収键盘...) - (BOOL)endEditing:(BOOL)force; UITextFieldDelegate 代理中方法 点击输入框触发方法,返回YES则可以进入编辑状态,NO则不能。...:(NSString *)string;   点击清除按钮时调用函数,返回YES则可以清除,点击NO则不能清除 - (BOOL)textFieldShouldClear:(UITextField *)

1.2K10

iOS学习——tableview中带编辑功能cell键盘弹出遮挡和收起问题解决

最近在项目中经常用到UITableView中cell中带有UITextField或UITextView情况,然后在这种场景下,当我们点击屏幕较下方cell进行编辑,这时候键盘弹出来会出现遮挡待输入...这个问题在之前我们随笔iOS学习——键盘弹出遮挡输入框问题解决方案中也有讲过对应解决方案,但是该方案最近应用中还有点小问题,我们在这里重新进行处理好。...,首先,我们再主控制器中定义几个属性来保存我们键盘弹出tableviewcontentOffset以及当前编辑cellframe,然后应用自定义cell设定我们两个回调block,当开始编辑...  在前面的2.1UITextField或UITextView点击之后详细流程分析中我们知道,点击文本之后弹出键盘时会发送一个UIKeyboardWillShowNotification通知,...,和弹出键盘相对,弹出键盘我们保存了弹出键盘之前tableviewcontentOffset偏移量,所以,收起键盘后,我们将tableviewcontentOffset值设为弹出之前值就可以了

3.9K80

iOS开发——定制UITextField

iOSUITextField这个控件作为文本输入控件一定是使用率最高几个控件之一,而iOS提供默认原始TextField造型肯定在开发很难满足我们要求,原因很简单,不够美观,实在太单调。...今天我们主要从UITextField键盘收起、placeholder设置以及自定义距离、字体,以及控制输入文本,距离UITextField边框距离和UITextField中一些常用方法和枚举变量等方面来阐述如何定制自己...键盘收起 首先我们先来看UITextField键盘弹出和回收,UITextField默认情况下,键盘在输入完成后是不会自动回收,这里我们讲解如何在按下Return键键盘自动回收。...placeholder设置 一些特定功能文本输入框,我们常常要设置placeholder属性来指明当期UITextField功能,例如:请在此处输入密码。...,同时要注意一点是,设置了placeholder位置之后,我们也要相应调整文本显示位置,以及在编辑完成后,文本显示输入框位置。

1.5K40

ios学习——键盘收起

开发过程中,我们经常会用到UITextField、UITextView等文本框,然后这些文本框在点击之后会自动成为第一响应者(FirstResponder),并自动弹出软键盘。...然而,没有自动定义好键盘回收。今天,我开发过程中就遇到了这个问题,首先,软键盘收起会发生在两种情况下,一是当前区域为非第一响应者,二是当前区域输入结束。...具体解决方案有两种: 1、在当前页面设置点击事件,当点击事件发生,注销当前视图第一响应者或者设置当前摄入结束。...当点击事件发生在非选中区域,则键盘会自动回收: 1 //viewDidLoad中 添加点击手势,为了关闭键盘操作 2 UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer...2、利用键盘 回车键 来进行设置当前UITextField、UITextView等文本框不是第一响应者,这种方法对UITextField、UITextView应用不一样,需要区别进行。

1.9K60

iOS 应用开发 】 UIKit 控件 ( UIView 属性 | storyboard 设置 | 模拟器 | 拖线关联 | tag | 软键盘操作 | 颜色值 | 代码生成控件 | 动画设置 )

Software Keyboard 选项 激活; 9.设置软键盘类型 : 设置 TextField 控件 Keyboard Type 属性; 10.退出软键盘 : ① 谁触发谁关闭 调用UITextField...weak) IBOutlet UILabel* resultLabel; , 除了类型 UILabel 与上面不同之外 其它一样; ---- ( 6 ) 软键盘设置 软键盘设置 : 1.虚拟机软键盘弹出设置..., 设置其中 keyboard Type, 设置为 Number Pad 数字键盘; 3.退出软键盘方式 : 两种方式 ① 哪个 TextField 触发, 通过对应 TextField...控件 关闭键盘; ② 通过 父控件 关闭键盘; ① 谁触发谁关闭 : 调用控件 resignFirstResponder 方法 退出软键盘, 该方法只能关闭控件本身触发键盘, 示例 [...方法关闭键盘; 代码 [self.view endEditing:YES] 关闭 view 控件 及其 子控件 触发键盘; ---- ( 7 ) 实现加法逻辑 实现计算逻辑 : 1.实现位置 :

4.7K30

客户一个无厘头BUG ,让我青春痘炸了2颗

系统:IOS9.3.1 # 手机卡:移动运营商 151开头 # 重新概率:该用户手机百分分必现,其它手机暂无人员反馈 # 模块:登录页 # 测试场景:打开登录页--->点击文本输入框--->触发数字类型键盘...描述 该bug 客户重进多次手机百分百必现,然后前端校验只允许输入数字;然后用户都未触发登录,想从数据如何传入到数据库等方式去查看也行不通; 后来我咨询我身边前端,说有可能是前端代码哪里写了该几个字,...06 原来这个用户设置-》通用-》键盘-》文本替换把自己手机号设置自己文本,这样只要在UITextField中输入自己手机号,输入完就会变成自己名字,出现上图情况。...但是后来我在想前端不是做了 正则表达式校验,就算手机设置了替换,中文也不应该展示出来啊 最后毛豆拿着自己IOS手机去发现该问题,按照操作设置-》通用-》键盘-》文本替换把自己手机号设置自己名字了...,这样只要在UITextField中输入自己手机号,输入完就会变成自己名字,出现上图情况。

48610

IOS开发基础系列】UIAlertController专题

创建上拉菜单方式和创建对话框方式非常类似,唯一区别是它们形式。     ...类同样也是iOS 8中新出现类,用来替换UIPopoverController。...3 开发技巧 3.1 常见问题 3.1.1 集成键盘监听后,重复进入页面挂机问题         项目中,由于自定义AlertView中有用到textfield,故AlertView中添加了键盘显示隐藏通知监听...具体表现是:项目中,自定义AlertView实例生命周期是plugin中管理,plugin差不多是单例模式,故自定义AlertView实例不会轻易释放,只有下一次调用插件,实例进行替换才会将上一实例释放...若不及时移除上一个实例监听,便会添加两次监听,但是键盘通知回调,由于上一实例被释放了,便会在IOS8.0上报找不到对象实例错误。

40730

UI篇-UIResponder之事件传递和响应精析

分别有多点触控、摇一摇以及远程操作(iOS之后新增了3DTouch事件类型)。一个用户点击事件处理过程中,UIEvent对象是唯一。...响应者链:由一系列“下一个响应者”组成 其顺序如下: 1.iOS系统处理事件,通过UIApplication对象和每个UIWindow对象sendEvent:方法将事件以消息形式分发给具体处理此事件第一响应者...一定时间内关闭事件传递。...前一个方法使应用程序完全停止接收触摸事件消息,第二个方法则重启消息接收。某些时候,当您代码正在执行动画,可能希望关闭事件传递。...我们使用UITextView和UITextField时候,可以通过它们inputAccessoryView属性给输入时呼出键盘加一个附属视图,通常是UIToolBar,用于回收键盘

2.4K30

NSNotificationCenter 通知使用方法详解你要知道KVC、KVO、Delegate、Notification都在这里

NSNotificationCenter通知中心是iOS程序内部一种消息广播实现机制,可以不同对象之间发送通知进而实现通信,通知中心采用是一对多方式,一个对象发送通知可以被多个对象接收,这一点与我们前面讲解...,ViewController中有一个按钮和一个标签,点击按钮跳转到NextViewController视图中,NextViewController中包含一个输入框和一个按钮,用户完成输入后点击按钮退出视图跳转回...以后似乎变得不那么重要,iOS9开始不再对已经销毁监听器发送通知,当监听器对象销毁后发送通知也不会造成野指针错误,这一点比KVO更加安全,KVO监听器对象销毁后仍会触发回调函数就可能造成野指针错误,...,或是系统提供通知,我们无法预知这些通知是否是主线程中发送,为了安全起见最好在需要更新UI使用GCD将更新逻辑放入主线程执行。...系统提供了很多各式各样通知,比如当我们要实现IM即时通讯类app聊天页面输入框就可以使用系统键盘发出通知,相关通知有UIKeyboardWillShowNotification和UIKeyboardWillHideNotification

2.2K60

iOS学习——UIAlertController详解

开发中,弹出提示框是必不可少。...这两天项目中统一对已经被iOS API废弃UIAlertView和UIActionSheet进行替换,我们知道,UIAlertView和UIActionSheet都已经被iOSAPI所废弃了。...UIAlertController是iOS8.0中出现一种统一提示风格界面,代替原来UIAlertView和UIActionSheet两种类别。...,我们常用配置有两类,一是根据需要添加按钮,并味蕾个按钮添加点击事件;二是根据需要添加文本框,用于和用户进行更多交互。...才有 文本框添加多个 我们可以看到,配置文本框这里还有一个参数是textFields,这各参数是一个只读数组类型,用于获取UIAlertController提示器上所有的文本框对象,这个经常在我们点击按钮用这个来获取到每一个文本框

2.7K170
领券