iOS开发点滴 - 关闭键盘

有时候系统显示的键盘会挡住视图中某些重要的控件,这个时候当用户按下换行键,就应该取消UITextField对象的第一响应(First Responder)状态而关闭键盘。

 

1. 首先,视图控制器必须遵守UITextFieldDelegate协议

@interface XXViewController ()<UITextFieldDelegate>

 

2. 然后,需要再视图控制器中实现textFieldShouldReturn:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

 

3. 运行应用,点击键盘,按下Return键后发觉没有反应,这是怎么回事呢?

原来,我们忘记了让我们的文本框控件连接File's Owner

点击文本框,按下Control键+鼠标拖动到左侧Placeholders中的File's Owner,这时候鼠标右键点击文本框,会发现Delegate中多了File's Owner

再次运行,Ok成功了!

 

4. 为了获得更好的用户体验,需要用户轻按视图背景区域,也能关闭键盘

解决方案是想顶层视图发送endEditing:消息

a. 将视图控制器中的视图的Custom Class从UIView改为UIControl

b. 添加背景轻触响应事件

  b-1) 切换到辅助视图(Assistant View), 左侧是视图控制器的图形化界面,右侧是实现代码

  b-2) 选中视图控制区的顶层View, Control+鼠标左键拖动到实现代码

  b-3) 在弹出对话框中输入动作名称backgroundTapped

         千万不要忘记把事件类型改为Touch Up Inside!!

         输入以下代码:

 

- (IBAction)backgroundTapped:(id)sender
{
    [self.view endEditing:YES];
}

 

运行应用,Ok一些成功!!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值