重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
对于文本框和文本视图来说,当它们成为第一响应者时虚拟键盘将出现并一直出现在屏幕上,直到文本框或文本视图退出第一响应者状态。对于iPad程序,其虚拟键盘有一个按钮可以用来关闭虚拟键盘,但是iPhone程序中却没有该按钮。
创新互联专注于企业营销型网站建设、网站重做改版、高昌网站定制设计、自适应品牌网站建设、H5高端网站建设、商城建设、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为高昌等各大城市提供网站开发制作服务。这一篇文章我使用的是前一篇的Demo,运行该Demo我们可以看到当虚拟键盘出现后就没法再关闭它了。我们可以在按下“Return”键盘关闭虚拟键盘,也可以在轻触文本框外即视图背景关闭键盘。
1.按下“Return”键里关闭虚拟键盘
当用户按下虚拟键盘中的“Return”键时会产生一个“Did End On Exit”事件,此时应通知文本框放弃第一响应状态,这样虚拟键盘就会消失了。
(1)按红色框中的按键调整窗口大小,分别选中两个UITextField控件,按下右键并拖动到
- @interface ViewController : UIViewController
下,把这两个文本框映射到ViewController.h中,在name中的变量名分别为:textPlaceholder和textBackground。注意在Connection处选择的是Outlet。如下所示:
(2)切换到ViewController.m文件,在代码
- @implementation ViewController
后添加
- @synthesize textPlaceholder, textBackground;
当然,在本测试中我们也可以不添加。但我们需要养成@property与@synthesize配对使用的好习惯。
(3)同(2),选中第一个UITextField控件,按下右键并拖动到@end前,在Connection处选择的是Action,在Name中输入:textFieldReturnDidEndOnExit响应函数名称,在Event中选择“Did End On Exit”。如下所示:
(4)调整界面如下图,选择第二个文本框,在Connector Inspector中选择Sent Events下的Did End On Exit,从它右边的圆圈中拉出映射线到上一步的textFieldReturnDidEndOnExit响应函数名称上。这样,两个UITextField文本框都映射到了同一个IBAction响应函数:
(5)调整视图,切换到ViewController.m文件。可见在最后的@end之前有个函数:
- - (IBAction)textFieldReturnDidEndOnExit:(id)sender {
在该函数中添加代码,让文本框放弃第一响应者状态:
- [sender resignFirstResponder];
运行程序,哈哈,成功了。当我们点击“Return”时虚拟键盘消失了!
2.轻触视图背景关闭键盘
步骤跟上面的差不多。
(1)首先选中ViewController_iPhone.xib,选中View,打开Identity Inspector,在Custom Class下的Class处选择UIControl。
(2)选中背景视图,按下右键并拖动到@end前,在Connection处选择的是Action,在Name中输入:backgroundTap响应函数名称,在Event中选择“Touch Down”。如下所示:
(3) 切换到ViewController.m文件中,可见在@end之前添加了如下IBAction函数:
- - (IBAction)backgroundTap:(id)sender {
在该函数中添加如下代码:
- [textPlaceholder resignFirstResponder];
运行程序,可见如下效果:
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。