ios 隐藏键盘

来源:互联网 发布:csgo玄学知乎 编辑:程序博客网 时间:2024/05/17 01:31

焦点在UITextField或UITextView中的时候,键盘会出现,想点一下背景就让键盘消失。这是在手持设备上服合用户的操作习惯。当然方法有很多,在这儿我说一个比较实用的方法。

因为UIView默认是不能关联方法调用的,而UIControl则不一样,它可以关联很多方法。而UIControl是UIView的子类,它有UIView的所有特性,于是我们可以把我们的UIView修改为UIControl类,这样再给它关联一个事件,一般就是up in side,这样在这个关联的事件里我们dismiss所有的UITextField或UITextView.

这儿有一个递归找view上所有的UiTextField或UITextView,并dismiss的主法:
- (void)resignKeyBoardInView:(UIView *)view 

    for (UIView *v in view.subviews) { 
        if ([v.subviews count] > 0) { 
            [self resignKeyBoardInView:v]; 
        } 
         
        if ([v isKindOfClass:[UITextView class]] || [v isKindOfClass:[UITextField class]]) { 
            [v resignFirstResponder]; 
        } 
    }