IOS隐藏键盘

简介: 最近遇到二个键盘会自动弹出的问题: 1、UIWebView加载网页后,点击网页内的链接在UIWebView内进行跳转时,键盘自动弹起; 2、调用选择照片时,iPod上选择照片后也会自动弹出键盘,比如从图库进到具体某个文件夹内,或者再返回图库,直接点中照片然后编辑的时候,都会自动弹出;   问...

最近遇到二个键盘会自动弹出的问题:

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也不算特别多,暂时就使用了上述的方法来处理了。

 

 

参考:

How to make a transparent UIWebView

Add an activity indicator on a uiwebview

目录
相关文章
|
编译器 iOS开发
IOS越狱开发(二)———APP开机自动启动并隐藏图标
IOS越狱开发(二)———APP开机自动启动并隐藏图标
251 0
IOS越狱开发(二)———APP开机自动启动并隐藏图标
|
iOS开发
iOS 状态栏的隐藏显示与状态栏样式的设置
iOS 状态栏的隐藏显示与状态栏样式的设置
919 0
iOS 状态栏的隐藏显示与状态栏样式的设置
|
iOS开发
IOS正确解决隐藏导航栏后push、pop闪黑问题
IOS正确解决隐藏导航栏后push、pop闪黑问题
550 0
|
Java iOS开发
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(二)
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(二)
117 0
|
存储 安全 C语言
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(一)
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(一)
162 0
|
安全 iOS开发
iOS 筛选视图的隐藏方案
iOS 筛选视图的隐藏方案
142 0
iOS 筛选视图的隐藏方案
|
算法 iOS开发
iOS视图滚动的时候控制导航条标题及公告视图的alpha(显示与隐藏)
iOS视图滚动的时候控制导航条标题及公告视图的alpha(显示与隐藏)
220 0
iOS视图滚动的时候控制导航条标题及公告视图的alpha(显示与隐藏)
|
存储 iOS开发
iOS崩溃排查技巧:symbolicatecrash符号化分析问题、导出和隐藏符号
iOS崩溃排查技巧:symbolicatecrash符号化分析问题、导出和隐藏符号
378 0
iOS崩溃排查技巧:symbolicatecrash符号化分析问题、导出和隐藏符号