ios实现点击空白处关闭键盘

原创
2015/09/23 21:15
阅读数 3.1K

写了个小应用,遇到了点击空白处不能关闭键盘的问题以及切换view会导致home页面先上去再下来的问题。把解决的办法记下来

主要使用了一个navigation。view也只有两级。如下图所示

遇到的问题是如果我设置了其中任一项参数之后没有关闭键盘,然后直接点击左上角的“back”,就会出现home view先填充满整个view,然后又被navigation的navigationbar挤下来了。为了解决掉这个问题,要么在切换之前把键盘关掉,也得实现点击空白处就能关闭键盘。那么下面就是代码

  1. 切换前关闭键盘

    要切换view,那么原来的view肯定会先调用方法viewWillDisappear,那我们就在调用该方法的时候把键盘关掉,那么切换过去的时候键盘就已经处于关闭状态了。重新实现viewWillDisappear如下:

       

-(void)viewWillDisappear:(BOOL)animated{
    [self IsValidToPop];
    
    [super viewWillAppear:animated];
    [self.view endEditing:YES];
}

  其中IsValidToPop是在切换的时候判断当前设置完的参数的有效性,并保存参数到NSUserDefault中

  2.  点击空白处关闭键盘

   在ViewDidLoad方法中添加如下代码,就可以实现了

    UITapGestureRecognizer *tapGr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];
    tapGr.cancelsTouchesInView = NO;
    [self.view addGestureRecognizer:tapGr];

 viewTapped是自己定义的方法

-(void)viewTapped:(UITapGestureRecognizer*)tapGr
{
    [ipText resignFirstResponder];
    [portText resignFirstResponder];
    [bufferText resignFirstResponder];
    [self IsValidToPop];
}

  主要功能就是让当前view里面所有的text窗口都交出第一响应的权限。然后校验参数并保存。

展开阅读全文
打赏
0
4 收藏
分享
加载中
更多评论
打赏
0 评论
4 收藏
0
分享
返回顶部
顶部