IOS 键盘的显示与关闭

article/2025/11/9 6:09:51

转自:http://my.oschina.net/hmj/blog/99489 

在每一个IOS应用中,几乎不可避免的要进行文本输入操作,例如要求用户填写登陆注册信息,进行话题的评论回复,等等。用到的文本输入组件有UITextField,UITextView,对于这两个组件的相关属性和方法想必大家都很熟悉,但貌似对于键盘的显示或隐藏过程貌似常常不是很清楚,其实本人也是一知半解,所以趁此做简单的总结,基本上以下描述出自于官方的文档,并没有什么更改。

1.开启键盘面板


       当用户触击某一个view时,系统会自动指定该view为第一响应对象(first responser),(关于第一响应对象的我们估计可以把它看做一个标志位,每个贴上该标记的对象都能成为first responser,这样可能要好理解些)当某个包含了可编辑文本的view(UITextField或UITextView)成为第一响应对象后,该view会为文本输入开启一个"编辑会话"(editing session),之后该view会告知系统去开启并显示键盘,如果当前键盘处于隐藏状态,那么它会根据当前设备的旋转方向,自动调整并从application的底部以滑动动画形式出现,这通常都是我们看到并已熟知的键盘显示方式;如果当前键盘已处于显示状态,由于第一响应对象这个标记已被设置到当前的view上,所以键盘输入也被重定向到该view上了。

       因为当一个view设置第一响应对象后,键盘会自动显示,通常情况下我们不用做其它任何事情。但是,有时我们可以调用可编辑文本view的becomeFirstResponder方法,来显示键盘。

       如某一UITextField类的名为theTextField对象可调用以下方法:

1 [theTextField becomeFirstResponder];
       在可编辑view上调用该方法达到的效果,与用户触击该view的效果是一致的,首先会使该view成为第一响应对象,之后键盘被调用显示。  

     如果在应用中某一功能上需要同时管理几个文本输入,最后的做法是跟踪当前是哪一个view为第一响应对象,因为在之后的操作中我们可以选择性的关闭键盘。

2.关闭键盘


       以上,我们可以看到,键盘的显示为IOS系统的自发行为,我们在程序上不用做任何处理,但关闭键盘的处理却于此相反:系统不会自动关闭键盘,在应用中我们自己要负责在合适的时间关闭键盘。其实这个洛是显而易见的,开启键盘的目的是为了输入文本,但关闭键盘的逻辑却因具体应用的处理逻辑的不同而不同。但通常情况下也只是在用户的某一行为下才会关闭键盘,例如用户触击了键盘的“Return”和“Done”按钮;或者是在填完并提交一个表单后要关闭键盘,所有的这些有IOS基本的用户界面行为设置,也有我们的应用功能决定的用户界面设置。

      要关闭键盘,可以调用当前是第一响应对象的某一个包含可编辑文本view的resignFirstResponder方法。从字面意义上来看,resignFirstResponder与becomeFirstResponder方法的处理逻辑和作用是相反的,调用了resignFirstResponder的view会注销其第一响应对象的状态,并结束之前开启的“编辑会话”,并关闭键盘。也就是说,假如之前的theTextField对象当前为第一响应对象,要关闭键盘可以调用以下方法:

1 [theTextField resignFirstResponder];

3.First Responser对象


      对于first response对象,其实是在Application中那个第一个接受系统事件的对象,如键盘事件(key events),动作事件(motion events),以及action消息。在此不做介绍。

注:描述于IOS5.1下


http://chatgpt.dhexx.cn/article/PaqOj4Oa.shtml

相关文章

如何在屏幕实时显示键盘操作(独家分享)

能够在屏幕上实时显示键盘操作,对于录制操作教程视频需求的人来说,可以达到事半功倍的效果,尤其对于比较大型的软件,如Photoshop,After effect等,有非常复杂多样的快捷键,(小型软件也…

实时显示键盘按键

本文转载于:Keyviz - 开源按键可视化工具:实时显示键盘按键[Windows] - 小众软件 Keyviz 是一款开源、免费的按键可视化工具,它可以实时显示用户当前按下的按键,可自定义显示按键风格、样式,非常适合录屏、演示等场合…

键盘按键显示软件nohboard

作为一名主播为了自证明游戏中的天秀操作是自己打出来的,不是外挂或代打 亦或者录制一段教学视频,需要实时显示你的按键操作,都需要如下一款软件: nohboard 下载地址: https://obsproject.com/forum/resources/no…

如何在屏幕实时显示自己键盘的输入字符?

请先看这篇文章: 本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 大家在观看…

PowerBuilder 9日历控件展示,下载(附带源码)

下载地址:https://download.csdn.net/download/weixin_37914760/11444539 1、pb9日历控件,支持多个日期选择

C# scottplot插件下载安装(工具箱中无控件问题)

前言 ScottPlot - 可交互的 .NET 图表库 (coderbusy.com)https://scottplot.coderbusy.com/软件版本:VS2015 参考:(3条消息) C# 使用 ScottPlot.WinForms 实现示波器的波形显示_张世争的博客-CSDN博客_winform 示波器https://blog.csdn.net/tcjy1000/a…

WinCC数据报表控件

1、背景 WinCC实现报表历来是老大难,自带的报表功能不好使,又没有好用的第三方控件。虽然网上也有很多实现报表的方法,但是毫无例外的要求使用者具有脚本编程功底,HwDataReport的出现将终结这一现象。您无需一行脚本即可完成…

QT学习之自定义控件

一 、自定义控件封装 1、 添加新文件 - Qt – 设计师界面类 (smallwidget.h smallwidget.cpp smallwidget.ui) 2、在添加的新 smallwidget.ui中 设计 QSpinBox和QSlider 两个控件,组合在一起 3、 主UI界面中使用自定义控件,拖拽一个Widget,…

pyqt qtdesinger 自定义控件

自定义控件包括3部分,自定义控件,提升控件和修改py文件。 1.自定义控件 在新建窗体时选择Widget。 这时这个窗体整个就是一个控件。 随便拖入些控件完成创建。保存。 命名为try_widget。 把ui文件转化为py文件。 自定义控件部分完成。 2.提升控件 新建一个QMain…

Microsoft Barcode控件详解

1、电脑无Microsoft BarCode插件,下载安装:(链接已失效)https://www.microsoft.com/zh-cn/download/details.aspx?id8913 2、安装后还是没有显示Microsoft BarCode插件,可以去下载MSBCODE9.OCX,通过CMD注…

Qt自定义控件(开源)

在平常的项目中经常会有到Qt做界面去显示一些数据,因此,使用Qt封装了一些自定义的控件。 所有控件使用Qt painter自绘,不需要依赖任何第三方库。提供setValue()接口,可以设置控件数据。每个控件都是一个单独的类。目前有仪表盘、…

C# 分页控件

先看实现项目的效果图: 特别是由于数据量比较大,页面显示卡顿需要分页显示时,这种控件就显得特别需要了。 之前看到不少控件库都有提供这个控件,但是单独提取出来的话,需要附带很多它类库里面的依赖文件,而…

C# winform 下拉框多选,自定义控件(附下载链接)

C# winform 下拉框多选,自定义控件 点我下载源文件 效果如下图所示: 可以实现下拉框多选效果 自定义控件,将上面这个自定义控件拖到项目就能使用 下拉框添加选项方法(和ComboBox类似) PowerComboBox5.Items.AddR…

Labview自定义控件-布尔类控件

LabVIEW中自定义控件(.ctl控件)的方法 ​​​​​【LabVIEW小技巧】LabVIEW自定义系统按钮时图片项设置说明_Enjoy Coding With LabVIEW-CSDN博客 LabVIEW自定义布尔控件合集(~1000种).rar_labview自定义控件下载,labview自定义…

说说通用报表控件

我们已经开发有2款WINCC报表控件,一种是固定模板,一种是自定义模板。但是它们有个共同特点,就是数据都是来自WINCC的归档数据库。使用WINCC归档数据库的好处是不需要自己写脚本保存数据。但是有些情况下,我们需要自己保存数据&…

各种ActiveX控件下载地址分享

ActiveX是微软对于一系列策略性面向对象程序技术和工具的称呼,ActiveX控件可以在Windows窗体和Web程序上使用,所以不管是什么语言开发的应用程序只要在windows窗体和html页面中使用,同时也可以在MAC和JAVA平台使用,大部分均采用Ac…

Iocomp控件 Iocomp安装教程 Crack 下载

使用Iocomp Components 5.12 sp6能够助程序员开发出逼真的工控仪表和工控图表,让程序开发不再消耗时间和精力,有了这个控件不仅能节约开发时间,而且还降低了项目风险,最重要的是第三方控件写的程序更专业,工控图表图像…

wincc控件包下载_Simatic HMI WinCC V7.4 SP1 组态软件下载

WinCC V7.4 SP1 是 WinCC V7.4 的免费升级包,WinCC V7.4 SP1有哪些新功能呢? 增加连接数 自 WinCC V7.4 SP1 起,以下性能数据适用: SIMATIC S7-1200:最多可连接 64 个 SIMATIC S7-1500:最多可连接 128 个 最大可能连接数受可用的系统资源及其性能数据限制,特别是受 CPU、…

常见ActiveX控件下载大全

ActiveX是微软对于一系列策略性面向对象程序技术和工具的称呼,ActiveX控件可以在Windows窗体和Web程序上使用,所以不管是什么语言开发的应用程序只要在windows窗体和html页面中使用,同时也可以在MAC和JAVA平台使用,大部分均采用Ac…

Qt 自定义控件

文章目录 前言一、自定义控件是什么?二、自定义控件的构建和使用1.实现内容介绍 前言 在使用Qt的ui设计时,Qt为我们提供了许多标准的窗口控件,但是在很多复杂工程中,标准窗口控件并不能满足我们所有的需求,这时就需要…