swift4.0如何获取键盘点击return的响应以及切换第一响应者的简单办法

首先我必须得说,不管你的问题可不可以根据我的办法解决,这个办法都不是唯一的办法,甚至不是最好的办法如果你发现了更棒的办法,或者发现了我这个办法的缺陷,请及时联系我。邮箱:[email protected].

请允许我先扯个淡:


以后一定不要做程序员,真的会被产品给砍头的!对了,被砍头的不只有程序员,还有前端。其实也都是程序员。哈哈哈,就因为老师看了我的一个学习用的小程序,就说我,你这几个textField输入太麻烦了吧,每输入一个框就得点一次。


swift4.0如何获取键盘点击return的响应以及切换第一响应者的简单办法_第1张图片

于是乎我开始去找资料。说道这里就要给大家补一个知识:responder(响应者)。

官档关于responder的详细资料

为什么把官档放在第一位呢,说一句废话,如果你都没有力气先读官档而是先看我吹逼,那你就别干程序员了吧,38岁会离职的哦。

swift4.0如何获取键盘点击return的响应以及切换第一响应者的简单办法_第2张图片

废话不多说,什么是响应者,就是你直接进行交互的对象,或者你是用键盘点击屏幕等等直接与视图进行交互的对象。可以使一个button,也可以是一个textfield。同时,响应者还有一个概念叫做firstResponder。OK当你点击一个button的时候,这个button就成了第一响应者,响应你的touch down动作或者touch up等等一系列被官档中所声明存在的动作。而当你点击一个输入框的时候(例如一个文本框也就是textfield)你会发现文本框变成可编辑的了,当前textfield.text就会随着你的编辑改变他的值。

如果你懂了什么是第一响应者以后,对咱们标题提出的问题就有了一个初步的想法了:

1.我们当前编辑的text或者其他View元素,就是第一响应者。我们要点击键盘的回车键(return)的时候切换第一响应者给其他任意一个你想让他成为第一响应者的元素。

2.当点击keyboard的return键时候ViewController需要接受到你的响应,然后执行相应的功能(切换第一响应者)

这里我介绍两个属性:


swift4.0如何获取键盘点击return的响应以及切换第一响应者的简单办法_第3张图片
这是官档的解释

这里做简单的示范吧

textField.isFirstResponder == true//判断textField是否是第一响应者

textField.becomeFirstResponder()//使textField变成第一响应者

这两个属性是相当重要的。其余的属性可以根据需要添加。

当然有这两个还不够,还需要一个关于Action的概念,也就是你在playground中点击textField元素点击Control拖到viewcontroller中新建一个action的fun,首先你需要将outlet改成action还需要将event(事件)改为did end on exit。如下如:

swift4.0如何获取键盘点击return的响应以及切换第一响应者的简单办法_第4张图片

这个时候如果你产生了疑问:这个DidEndOnExit是个啥,还有其中的那么多选项是干嘛的,我不做讨论,当然是因为我没有必要使用其中的选项,同时也不了解,如果你了解,或者有相关链接请联系我,我修改这篇文章,将链接添加进来以供查阅。这里我就简单的介绍DidEndOnExit是什么意思:

Differences between `.EditingDidEnd` and `.EditingDidEndOnExit`

我不翻译了 ,如果你想继续搞ios开发,尤其是使用一直在更行的swift语言,的话,英语将是你最大的障碍。克服不了,其实你就没有资格搞这一行。

swift4.0如何获取键盘点击return的响应以及切换第一响应者的简单办法_第5张图片

那么我们设置完成了。(在playground中拖入一个textField然后使用Control拖动元素按照上述截图设置好了action event)

这个时候你可以run一下,很显然,当你点击键盘上return的时候。你发现textField的第一响应者失效了,当前View失去了响应者,准确的说是第一响应者。

那么说道这儿你应该知道怎么干了吧!

当然是在刚刚给textField在viewcontroller中建立的@IBActionfunc函数体中定义你的切换响应者动作了。

if self.isFirstResponder==false

{

某个textField.becomeFirstResponder()

}

以下是源代码的部分截图。

outlet
swift4.0如何获取键盘点击return的响应以及切换第一响应者的简单办法_第6张图片
action

在一次说一下,我这个是一个办法,不是唯一的,当然也不是最好的。如果你有更棒的方法,一定要记得联系我。我也可以跟你探讨我最新的认识,一起成长

(ps:写的太磨叽,大家挑着看,哈哈哈哈哈哈哈哈哈哈)

swift4.0如何获取键盘点击return的响应以及切换第一响应者的简单办法_第7张图片

你可能感兴趣的:(swift4.0如何获取键盘点击return的响应以及切换第一响应者的简单办法)