写了个小应用,遇到了点击空白处不能关闭键盘的问题以及切换view会致使home页面先上去再下来的问题。把解决的办法记下来app
主要使用了一个navigation。view也只有两级。以下图所示spa
遇到的问题是若是我设置了其中任一项参数以后没有关闭键盘,而后直接点击左上角的“back”,就会出现home view先填充满整个view,而后又被navigation的navigationbar挤下来了。为了解决掉这个问题,要么在切换以前把键盘关掉,也得实现点击空白处就能关闭键盘。那么下面就是代码code
切换前关闭键盘orm
要切换view,那么原来的view确定会先调用方法viewWillDisappear,那咱们就在调用该方法的时候把键盘关掉,那么切换过去的时候键盘就已经处于关闭状态了。从新实现viewWillDisappear以下:ip
-(void)viewWillDisappear:(BOOL)animated{ [self IsValidToPop]; [super viewWillAppear:animated]; [self.view endEditing:YES]; }
其中IsValidToPop是在切换的时候判断当前设置完的参数的有效性,并保存参数到NSUserDefault中get
2. 点击空白处关闭键盘it
在ViewDidLoad方法中添加以下代码,就能够实现了io
UITapGestureRecognizer *tapGr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)]; tapGr.cancelsTouchesInView = NO; [self.view addGestureRecognizer:tapGr];
viewTapped是本身定义的方法
class
-(void)viewTapped:(UITapGestureRecognizer*)tapGr { [ipText resignFirstResponder]; [portText resignFirstResponder]; [bufferText resignFirstResponder]; [self IsValidToPop]; }
主要功能就是让当前view里面全部的text窗口都交出第一响应的权限。而后校验参数并保存。select