用户触摸uiview时隐藏键盘

nbo*_*jja 29 iphone

我有一个带有多个文本框的UIView.现在我使用委托将响应者从文本字段更改为另一个.在这种情况下,当用户到达最后一个文本字段时,我的键盘会消失.

但是现在我想在用户触摸UIView时隐藏我的键盘(除了文本框之外触摸屏幕上的任何位置).有人可以帮我弄这个吗.

谢谢

PCh*_*ese 43

在touchesBegan中使用resignFirstResponder,如下所示:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch * touch = [touches anyObject];
    if(touch.phase == UITouchPhaseBegan) {
        [self.myTextField resignFirstResponder];
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您不确定焦点当前位于何处,则可能需要在多个文本字段上调用此字段; 我没有测试那个案子.

此外,在Interface Builder中,您需要为视图启用"启用用户交互"复选框,或以编程方式使用:

myView.userInteractionEnabled = YES;
Run Code Online (Sandbox Code Playgroud)


cha*_*e55 25

当您想隐藏键盘时,只需在视图控制器中调用它即可.

[self.view endEditing:NO];


小智 14

我用

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
     UITouch *touch = [touches anyObject];
     if(touch.phase==UITouchPhaseBegan){
         //find first response view
         for (UIView *view in [self.view subviews]) {
             if ([view isFirstResponder]) {
                 [view resignFirstResponder];
                 break;
             }
         }
     }
}
Run Code Online (Sandbox Code Playgroud)