我对UIWebView有一个非常奇怪的问题。
我用它来登录用户几个服务, 我打开UIWebView,显示一个HTML登录页面,按下其中一个文本字段就可以打开键盘。
之后,如果我尝试在其中加载不同的登录屏幕,按输入键不会出于某种原因显示键盘。
你们有没有碰到这个奇怪的错误?我尝试检查[self.window makeKeyAndVisible];
,就像我看到一些推荐但不幸的是它没有解决问题:(
这是我加载UIWebView的方式:
[webAuth stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"];
[webAuth loadRequest: [NSURLRequest requestWithURL: [NSURL urlWithString:@"http://whatever"] ]];
第一行是清除页面(尝试删除它,它不解决键盘问题)
答案 0 :(得分:2)
如果我错过了什么,我真的很抱歉,但我无法重现你的错误。您可以更详细地指定您的设置吗? (我宁愿把这篇文章添加为评论,但还没有它的声誉,对不起 - .-请随时将此答案更改为评论)
我的所作所为:
我拨打viewDidLoad
中的第一个网站,即Facebook登录
- (void)viewDidLoad {
[super viewDidLoad];
[self.webAuth stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"];
[self.webAuth loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://facebook.com"]]];
}
我使用上述按钮拨打第二个网站,Twitter登录
- (IBAction)showWebsite:(UIButton *)sender {
[self.webAuth stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"];
[self.webAuth loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://twitter.com/#!/login"]]];
}
我在Facebook上登录,然后按下按钮,点击任何Twitter登录输入字段
答案 1 :(得分:1)
我写这篇文章以防万一其他人会碰到这个 -
似乎导致问题的原因是在网页加载时使用SVProgressHUD呈现加载器。我不确定如何,但当我评论它们时,一切都按预期工作。
更新:Sam修复了SVProgressHUD组件,现在它在viewDidLoad上没有任何问题