我在 UIWebView 方面遇到了一个非常奇怪的问题。
我用它来让用户登录多个服务, 我打开 UIWebView,显示一个 HTML 登录页面,然后按其中一个文本字段打开键盘,正如它应该的那样。
之后,如果我尝试在其中加载不同的登录屏幕,则由于某种原因按下输入不会显示键盘。
你们中有人遇到过这个奇怪的错误吗?我尝试检查 [self.window makeKeyAndVisible];
就像我看到一些推荐一样,但不幸的是它没有解决问题:(
这就是我加载 UIWebView 的方式:
[webAuth stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"];
[webAuth loadRequest: [NSURLRequest requestWithURL: [NSURL urlWithString:@"http://whatever"] ]];
第一行用于清除页面(尝试删除它,它不能解决键盘问题)
最佳答案
如果我错过了什么,我真的很抱歉,但我无法重现您的错误。您能否更详细地指定您的设置? (我宁愿添加这篇文章作为评论,但还没有声誉,抱歉 -.- 请随时将此答案更改为评论)
我做什么:
- 我使用 iOS SDK 5.0,并在 iOS5.0 模拟器和装有 iOS5.0 的 iPhone4 上进行了尝试
- 我创建了一个简单的基于 View 的应用程序,并将按钮和 Web View 拖入 nib 文件中
我调用了
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 登录输入字段
- 一切(包括键盘)都按预期工作
关于ios - 当聚焦于第二次加载的文本字段时,UIWebView 不显示键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9340959/