本文共 2118 字,大约阅读时间需要 7 分钟。
最近遇到二个键盘会自动弹出的问题:
1、UIWebView加载网页后,点击网页内的链接在UIWebView内进行跳转时,键盘自动弹起;
2、调用选择照片时,iPod上选择照片后也会自动弹出键盘,比如从图库进到具体某个文件夹内,或者再返回图库,直接点中照片然后编辑的时候,都会自动弹出;
问题一是这样处理的
- (void)webViewDidStartLoad:(UIWebView*)webView { [activityIndicatorView_ startAnimating]; // update by zhangyi [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; } - (void)webViewDidFinishLoad:(UIWebView*)webView { [activityIndicatorView_ stopAnimating]; [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; } - (void)webView:(UIWebView*)webView didFailLoadWithError:(NSError*)error { [activityIndicatorView_ stopAnimating]; UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"" message:[error localizedDescription] delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alterview show]; [alterview release]; }
网页开始加载或加载结束时关闭键盘并发送关闭键盘的事件,如果webViewDidFinishLoad()不被调用是因为uiwebview对象需要设置delegate为self。UIWebView的透明设置,只需要增加二个属性
webView_.opaque = NO; webView_.backgroundColor = [UIColor clearColor];
第二个问题的处理方案是,在导航切换的时候隐藏键盘并发送关闭键盘的事件
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { viewController.contentSizeForViewInPopover = navigationController.topViewController.view.frame.size; [self HiddenStatusBarForIOS7]; // update by zhangyi [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; } // update by zhangyi -(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated { [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; }
因为接触ios也不算特别多,暂时就使用了上述的方法来处理了。
参考:
转载地址:http://jheel.baihongyu.com/