如何隐藏键盘时,空区域在iPhone触摸如何隐藏键盘时,空区域在iPhone触摸(how to hi

2019-05-13 09:49发布

通常当你触摸文本输入区域,键盘弹出,当你触摸屏幕的空白区域,键盘消失。 如何做到这一点?

就像我们经历了在iPhone上的Safari ......

谢谢

Answer 1:

更新方式(推荐):

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
   [self.view endEditing:YES];
}

这将结束在所有子视图编辑和辞职第一响应者。

其他方式(列举了所有文本视图):

这里有一个步步为它的步骤:

一个IBAction为添加到您的视图控制器,如 - (IBAction为)backgroundTouch:(ID)发送者

在backgroundTouch动作,你需要发送resignFirstResponder消息到所有的文本框在您的视图。 这是不幸的,但必要的,因为目前尚未有方法来检索当前具有FirstResponder状态的对象。 它应该是这个样子:

- (IBAction)backgroundTouch:(id)sender {
  [someTextBox resignFirstResponder];
  [anotherTextBox resignFirstResponder];
}

一个按钮控制添加到视图,它的大小,以覆盖整个可见区域(除了状态栏或任何标签或导航控制器)。 选择该按钮,然后去布局菜单,然后选择发送到上一步。 还设置了按钮的类型来定制,如果不专门为它提供任何绘图代码是不可见的。

按钮的触摸的内心活动连接到backgroundTouch:行动和尝试。



Answer 2:

使用这个简单的解决方案

对于斯威夫特4:

   override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
   }

对于斯威夫特2:

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        self.view.endEditing(true)
    }

客观C:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
   [self.view endEditing:YES];
}  

工程与的UITextField,UITextView的所有子视图。



Answer 3:

忘记把一个按钮,在后台有简单的解决方案

(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [self.textfieldName resignFirstResponder];
}


Answer 4:

有一个关于这个问题的教程(也涉及数字键盘没有DONE键)在这里



Answer 5:

对于>的iOS 4.0还有另一种解决方案(也许更好)有了这个代码,单一的水龙头鉴于隐藏键盘的任何地方。

// single tap to resign keyboard
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithBlock:^(UIGestureRecognizer *rec){
            [input_text resignFirstResponder];
        }];
self.singleTapRecognizer.numberOfTapsRequired = 1;
self.singleTapRecognizer.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:singleTapRecognizer];


Answer 6:

发送resignFirstResponder的控制。



Answer 7:

下面的代码工作正常xamarin iOS的项目:

public override void TouchesBegan (NSSet touches, UIEvent evt){
    View.EndEditing (true);
}


Answer 8:

你可以做这样还

通过在视图触摸背景隐藏键盘

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [[self view] endEditing:YES];
}


Answer 9:

我太有这个问题,这是非常烦人。 但我想出了如何摆脱键盘上的事故。 说你发短信约翰,还有从你查看你的谈话,并因此减少了,你可以看到屏幕的方式键盘。 好吧然后点击邮件中留下的uppwer,然后选择您所发短信的记录,不同的人,然后在左上角再次袭来的消息。 然后回去,并选择约翰。 没有你回到约翰交谈,通过键盘消失。 接缝很多,但它是相当快。 你会认为他们会只是把一个隐藏按钮键盘笑希望帮助,或者是很清晰的。



Answer 10:

我无法编译瓦尔的回答上面使用“initWithBlock:”选择。

此代码对我的作品。 这种添加到定义视图的方法 - 注意,我的观点是由那我想对单轻叩响应子视图是“chatView”。 使用键盘输入的视场被命名为“chatInput”。

    // single tap to resign (hide) the keyboard
    UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
    singleTapRecognizer.numberOfTouchesRequired = 1;
    singleTapRecognizer.cancelsTouchesInView = NO;
    [chatContent addGestureRecognizer:singleTapRecognizer];

然后加入自来水处理方法。

/**
 * Handles a recognized single tap gesture.
 */
- (void) handleTapFrom: (UITapGestureRecognizer *) recognizer {
    // hide the keyboard
    NSLog(@"hiding the keyboard");
    [chatInput resignFirstResponder]; 
}


Answer 11:

这个解决方案应该很好地工作,如果你是迅速和iOS 8/9的工作:

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
         self.view.endEditing(true)
    }


文章来源: how to hide the keyboard when empty area is touched on iphone