Ios 当用户触摸文本视图外部时关闭键盘
我正在使用这种方法,但键盘没有隐藏Ios 当用户触摸文本视图外部时关闭键盘,ios,objective-c,swift,uitextview,Ios,Objective C,Swift,Uitextview,我正在使用这种方法,但键盘没有隐藏 -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [_myTextView resignFirstResponder]; } -(void)touchesbeated:(NSSet*)toucheevent:(UIEvent*)event{ [[u myTextView辞职第一响应者]; } 我怎么能简单地触摸键盘外部就不使用键盘呢。如果
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[_myTextView resignFirstResponder];
}
-(void)touchesbeated:(NSSet*)toucheevent:(UIEvent*)event{
[[u myTextView辞职第一响应者];
}
我怎么能简单地触摸键盘外部就不使用键盘呢。如果解决方案同时适用于目标c和swift,那就太好了。谢谢
我在objective C中查询了scrollView中的textView。请解决。我已经搜索了,但没有找到离散解。试试这个
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
[self.yourScrollviewName endEditing:YES];
}
或者像这样使用
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if (![[touch view] isKindOfClass:[UITextView class]]) {
[self.view endEditing:YES];
[self.yourScrollviewName endEditing:YES];
}
[super touchesBegan:touches withEvent:event];
}
上面的代码不起作用,请尝试此操作
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *resignView = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTapforResign:)];
resignView.cancelsTouchesInView = NO;
[self.view addGestureRecognizer: resignView];
}
忽略当前正在编辑的内容:
- (void) handleSingleTapforResign:(UITapGestureRecognizer *) sender
{
[self.view endEditing:YES];
[self.yourScrollviewName endEditing:YES];
}
我将self.view替换为self.myTextView(textView插座)。试过了。什么也没发生。键盘保持原样。在您的视图中,已在scrollview或普通视图中添加了scrollview@Sam-很抱歉延迟,网络已关闭,请检查更新的答案!谢谢你,伙计!