说起这个,对初学者还真有点费解。不过我们不应该只知道怎么用,而不知道是什么原理。在这里我先谈谈我的理解吧。
在界面上放置了UITextFiled控件以后。我们要收起键盘就必须在头文件中实现UITextFiledDelegate协议。那么这个协议里面提供了几个方法,需要我们实现。其中有一个就是textFiledShouldReturn方法。这个方法就是在输入完成后控制器将要调用的方法。
这里是怎么回事儿呢?
我的理解是:输入面板的return按钮会发送一个notification通知给消息中心,说明输入完毕了。而控制器一开始就有订阅文本框输入完毕的消息。所以会收到这个输入完毕的消息,但是如果不实现UITextFiledDelegate这个协议的话,控制器就不知道收到消息后该怎么办。所以这个协议实现的方法就是文本框的通知消息处理函数。但这些处理函数控制器并不知道要做些什么,所以留给程序员决定。
再有一点就是:必须在textFiledShouldReturn方法中调用输入框对象的 ResignFirstResponder,方法,那么翻译下这个,就应该知道它是放弃第一个相应者的身份。对于我们window开发转过来的人来说,它和windows的lostFocus再相似不过了。就是丢弃焦点。
做到这些,输入面板就能收起来了。
其实这里应该也是应用了,观察者模式吧。主要是用于文本框,和输入面板两个控件对象之间的通信。