一、暗藏本身软键盘

当对于有多个UITextField控件都想通过点击“Return”来暗藏本身软键盘的状况,这时的最好方法是应用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。

该事件有一个sender参数示意以后文本框,这样便能够编写一个通用的事件处理办法(.m文件)。

- (IBAction)TextField_DidEndOnExit:(id)sender {// 暗藏键盘.[sender resignFirstResponder];}

而后在.h文件中填写该办法的申明——

- (IBAction)TextField_DidEndOnExit:(id)sender;

回到storyboard,并按command+option+enter关上辅助窗口,使辅助窗口显示.h文件。 选中一个UITextField控件,点击鼠标右键弹出面板,鼠标左键按住Did End on Exit事件旁边的圆圈,而后拖曳到右侧.h文件的TextField_DidEndOnExit办法上,便会建设好事件连贯。 随后依照同样的做法,将其余UITextField控件的Did End on Exit事件也连贯到TextField_DidEndOnExit办法。

运行一下,可发现每个文本框的软键盘都能够通过点击“Return”来暗藏了

二、点击Return主动转到下个文本框

当页面中有很多个文本框时,如果每次都须要点文本框激活软键盘、输出后点击Return暗藏软键盘、再点击下一个文本框……这样操作起来太繁琐了。 于是咱们心愿可能实现点击Return时可能主动转到下一个文本框。尤其是对于最初一个文本框,心愿可能在点击Return时执行下一步操作。

例如对于登录页面。它下面有 账号文本框(nameTextField)、明码文本框(passTextField)、登录按钮(loginButton)

咱们心愿——点击账号文本框软键盘的Return时跳转到明码文本框,点击明码文本框软键盘的Return时执行登录。

因为这两个文本框的性能不同,不能像上一节那样写一个TextField_DidEndOnExit做对立解决,而应该别离建设各自的事件处理办法。

回到storyboard,右击账号文本框(nameTextField)弹出面板,按住Did End on Exit事件旁边的圆圈,而后拖曳到右侧.h文件的空白中央,此时会弹出一个对话框给办法命名。输出名称 (nameTextField_DidEndOnExit)后回车确定,便主动生成了该事件办法。

随后依照同样的做法,为明码文本框(passTextField)的Did End on Exit事件连贯办法(passTextField_DidEndOnExit)。

来到.m文件,填写具体代码——

- (IBAction)nameTextField_DidEndOnExit:(id)sender {

// 将焦点移至下一个文本框.

[self.passTextField becomeFirstResponder];}- (IBAction)passTextField_DidEndOnExit:(id)sender {// 暗藏键盘.[sender resignFirstResponder];// 触发登陆按钮的点击事件.[self.loginButton sendActionsForControlEvents:UIControlEventTouchUpInside];}

对于账号文本框转明码文本框,不须要暗藏软键盘,只须要调用becomeFirstResponder激活新的文本框就行了。

对于明码文本框Return后执行登录。因为不再须要显示软键盘,所以还是得调用resignFirstResponder暗藏软键盘,而后触发登录按钮(loginButton)的UIControlEventTouchUpInside事件进行登录。

运行一下,可发现曾经达到咱们心愿的成果了。点击账号文本框软键盘的Return时跳转到明码文本框,点击明码文本框软键盘的Return时执行登录。

怎么都是“Return”,转换文本框与执行登录明明是不同的性能?

于是将账号文本框的Return Key属性设为“Next”,将明码文本框的Return Key属性设为“Done”,使界面与性能统一。

三、轻触背景暗藏软键盘

只能通过Return敞开软键盘太不灵便了,应该提供轻触背景暗藏软键盘的性能。

storyboard,点击背景View,将它的Custom Class设置为UIControl,这样才会呈现Touch Down事件。

右击背景View弹出面板,按住Touch Down事件旁边的圆圈,而后拖曳到右侧.h文件的空白中央建设该事件的解决办法。

来到.m文件,填写具体代码——

- (IBAction)View_TouchDown:(id)sender {// 发送resignFirstResponder.[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];}