单击uiview时如何从textview中删除键盘?

Posted

技术标签:

【中文标题】单击uiview时如何从textview中删除键盘?【英文标题】:How to remove keyboard from textview when uiview is clicked? 【发布时间】:2015-12-05 05:25:01 【问题描述】:

当键盘处于文本视图的编辑模式时,我试图移除键盘。我在主视图上添加了点击手势。但是当编辑模式为文本字段时,键盘被移除,但编辑模式为对于 textview 然后键盘没有被删除。请告诉我如何解决这个问题?

在主视图中添加了点击手势。

UITapGestureRecognizer *singleFingerTap =
    [[UITapGestureRecognizer alloc] initWithTarget:self
                                            action:@selector(handleSingleTap:)];
    [self.main_view setUserInteractionEnabled:true];
    [self.main_view addGestureRecognizer:singleFingerTap];

调用方法

- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer


    if([self.txt_username isFirstResponder])
    
        [self.txt_username resignFirstResponder];
    
    if([self.txt_password isFirstResponder])
    
        [self.txt_password resignFirstResponder];
    


我已经为文本视图设置了委托,并且我还添加了 textview 协议。

【问题讨论】:

@deepal kumar,现在试试我的答案,我已经编辑过,我试过了,效果很好 您找到解决方案了吗??如果没有,请告诉我会尽力解决您的问题 现在试试我的答案 我已经更新了,我试过了 【参考方案1】:

删除 setUserInteractionEnabled =true 的代码,你不需要那个

并将其添加到您的函数中

-(void)handleSingleTap:(UITapGestureRecognizer *)recognizer

[self.view endEditing:YES];

或者你可以使用库 TPKeyboardAvoiding ,设置为滚动视图..当你点击视图时它的自动关闭键盘..所以你不需要那个 UITapGestureRecognizer

【讨论】:

【参考方案2】:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
[[self view] endEditing:YES];

当给定阶段有新的或更改的触摸时,应用程序对象会调用这些方法之一。每个方法都有两个参数:一组触摸和一个事件。

欲了解更多信息Click here

【讨论】:

【参考方案3】:

我认为你只输入了textview resingFirstresponder

- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer

        [self.txt_username resignFirstResponder];

使用它。

【讨论】:

以上是关于单击uiview时如何从textview中删除键盘?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Apple 键盘听写中删除 TextView 中的蓝色虚线建议下划线?

我将如何在按钮单击时从 uiview 中删除 UIBezierPath。?

使用 UITextView 时如何隐藏键盘?

TextViews 在 ScrollView 中的位置不正确

如果键盘阻止了文本视图,则移动 UIView

当用户单击视图的背景时,如何使键盘消失?