撤销键盘的三类方法

      再进行TextField和TextView的输入过程中,必然涉及到键盘的收回。

      <1>点击键盘以外区域,收回键盘。

      

   - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

   {

       [self.view endEditing:YES];

   }

   这种方式应用较为广泛,但在使用过程中要注意接收点击事件的View是不是控制器的View,如果不是,self.view需要进行更改。


   <2>点击键盘右下角完成键(return),收回键盘。

   

   - (BOOL)textFieldShouldReturn:(UITextField *)textField

   {

      [textField resignFirstResponder];

      return YES;

   }

   这种方式比较常用在TextField的控件上,需要实现TextField的代理。


   - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

   {

       if ([text isEqualToString:@"\n"]) {//按下return,textView会当做\n使用

        [textView resignFirstResponder];

        return NO;

       }

       return YES;

   }

   这种方式比较常用在TextView的控件上,这样实现的话会有一个小缺点,输入中将没有换行功能,同样也要实现TextView的代理。


   <3>通过inputAccessoryView添加一个View,在View中添加按钮,点击事件为撤销键盘。


    //用于撤销键盘

    UIView *back = [[UIView alloc]initWithFrame:CGRectMake(0, 0, DE_UISCREEN_WIDTH, 30)];

    back.backgroundColor = [UIColor whiteColor];

    UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(DE_UISCREEN_WIDTH - 50, 5, 40, 20)];

    [button setTitle:@"完成" forState:UIControlStateNormal];

    [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

    [button addTarget:self action:@selector(cancelKey) forControlEvents:UIControlEventTouchUpInside];

    [back addSubview:button];

    _addressDetile.inputAccessoryView = back;

    其中cancelKey方法里的代码为:[self.view endEditing:YES];同样像本文方法一种注意View的归属性,这种方法一般多用于界面多个输入框的情况,比图添加个人信息之类的控制器。


         本文实际上说明了四种方式,希望能对大家有所帮助。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值