iOS 开发中中 textView 作为子控件点击输入文本,然后退出文本的方式

时间:2021-08-06 13:23:41

方式1. 使用当双击输入的时候弹出键盘同时,使用手势和通知监听键盘的方法实现

  代码如下:

  1. 监听键盘通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addTap) name:UIKeyboardDidShowNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyDismiss) name:UIKeyboardWillHideNotification object:nil];

  2. 弹出键盘中添加方法

    - (void)addTap {

    _tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(resign)];

     [self.view addGestureRecognizer:_tap];//self.view 可以视情况改动

    }

  3. 手势的事件

  #pragma mark - 点击手势的事件方法

    - (void)resign {

         [self.view endEditing:YES];

    }

  4. 键盘消失的方法

    - (void)keyDismiss {

  [self.view removeGestureRecognizer:_tap];

  }

方式2: 使用textView 的代理方法

#pragma mark - textView 的代理方法

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

if ([text isEqualToString:@"\n"]) {

[textView resignFirstResponder];

return NO;

}

return YES;

}