无意中发现项目登录页(一个web页,基本没人维护)显示弹窗,点击确定按钮,导致项目crash。
查看控制台 只有如下一行信息
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
继续添加断点 可以得到这样的信息
可以看到第一行提示存储了一个nil 的对象,导致系统直接崩掉。
继续往下看,可以看到键盘和响应者。
所以解决办法是当点击弹窗按钮,让键盘消失即可。
方法一:
创建UIWebview类别(JavaScriptAlert)添加方法和alert代理
-(void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame;
在.m中 实现上述方法 可自定义弹窗 ps:js弹窗标题是域名
UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"你想到更改的标题"message:messagedelegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alert show];
在alert代理方法中将键盘消失
方法二:
使用WKWebview 代替UIWebview