iOS键盘弹出又消失的问题

在iOS应用中,作者遇到键盘弹出后立即消失的异常情况,分析可能是线程问题。通过延迟0.5秒的操作,成功地解决了这个问题。代码示例中展示了如何利用`endEditing`方法和`dispatch_after`来避免键盘闪烁。同时,文章提及了弹框显示、代理方法及页面跳转的相关实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天遇到一个问题,我自定义的一个替人报名弹框,当报名成功后,我让其弹出一个uialertview,点击确定后跳转到其他页面,但是存在一个问题,就是键盘会出现弹出又消失的现象,分析了很久,并没有找到合适的方法让其消失,怀疑是线程问题,具体原因还在分析中,目前采用了一个延迟0.5s的操作,解决了该问题。

上代码

              [[[UIApplication sharedApplication] keyWindow] endEditing:YES];
            dispatch_async(dispatch_get_global_queue(0, 0), ^{
                
                double delayInSeconds = 0.5;
                dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
                dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
                    [self successfulShowMessage:@"恭喜您报名成功"];
                });
                
            });


报名成功弹框


- (void)successfulShowMessage:(NSString *)message {
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:message delegate:self cancelButtonTitle:@"好" otherButtonTitles:nil, nil];
    alert.tag = 1601;
    [alert show];
}


代理方法

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    
    [self.timer invalidate];
    if (alertView.tag == 1601) {
        //跳转分享奖励
        if (buttonIndex == 0) {
        if ([_isNew isEqualToString:@"0"]) {
            if (_delegate && [self.delegate respondsToSelector:@selector(passToshareRewardVC)]) {
                [self.delegate passToshareRewardVC];
            }
           }
        }

        [self removeFromSuperview];
    }
}

目前在研究热更新,会持续分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值