zoukankan      html  css  js  c++  java
  • IOS隐藏键盘

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

    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

  • 相关阅读:
    让PHP开发者事半功倍的十大技巧
    Sublime Text 3 快捷键总结
    localhost访问错误Forbidden You don't have permission to access / on this server.解决办法(亲测)
    html在一个页面显示另一个页面的部分内容
    db2许可证安装
    spring3中使用注解方式实现定时器调度任务
    c3p0详细设置
    hibernate.cfg.xml详细配置
    ExtJS学习(面板)
    汉诺塔算法
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/4486161.html
Copyright © 2011-2022 走看看