美文网首页
使用系统alert后键盘闪出又消失的解决办法

使用系统alert后键盘闪出又消失的解决办法

作者: 拥抱月亮的大星星 | 来源:发表于2016-06-15 11:40 被阅读344次

    场景重现:现在有两个控制器VCA 和VCB ,简称A ,B,比如我们是从A push到B的,然后我们在B里面执行操作,点击B中的方法,弹出个系统alert,点击系统alert,pop回A,如果我们点击alert的时候,正好键盘也在,文字正处在输入状态,这时候当我们回到A,会发现有个键盘弹出来,然后又弹下去。

    1.原因可能

    alertview pop
    alert关闭影响了键盘动画 pop操作影响了键盘动画

    然后我发现在没有pop情况下,alert关闭依旧会出现这个问题,所以我认为应该是alert关闭影响了键盘动画,不知道怎么验证,只是猜测

    2.解决办法

    你可以这样
    #pragma mark - UIAlertDelegate Method
    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
    {
        
        if(alertView.tag == 1000)
        {
            //防止pop后闪出键盘
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                self.hidesBottomBarWhenPushed = NO;
                [self.navigationController popViewControllerAnimated:YES];
            });
            
            
        }
    }
    
    假如你用的是textField你还可以可以这样
    1.设置代理
    textField.delegate = self;
    
    然后在点击事件添加
    [[alertView textFieldAtIndex:buttonIndex]resignFirstResponder];
    

    参考链接

    pop 一个viewController时候会有键盘闪现出来又消失, 请教原因和解决方法?

    相关文章

      网友评论

          本文标题:使用系统alert后键盘闪出又消失的解决办法

          本文链接:https://www.haomeiwen.com/subject/alhzrttx.html