在UIWebView中检测键盘按下

时间:2013-12-19 08:34:33

标签: ios iphone uiwebview

我有一个UIWebView,我用它来渲染样式化的HTML文本。由于div上的contentEditable设置为true,因此Web视图中的内容是可编辑的。

我想继续拦截用户的按键操作,这样我就可以在用户输入时继续调整UIWebView的大小。如何拦截按键事件?

1 个答案:

答案 0 :(得分:2)

首先定义一个虚拟网址

#define kDummyURL @"dummyurl://dummy"

然后在视图中加载添加javascript

-(void)webViewDidFinishLoad:(UIWebView *)webView{
    [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"$(function(){$('input, textarea').keypress(function() {window.location = \"%@\";});})",kDummyURL]];
}

并且应该开始加载请求尝试捕获将由刚刚添加的javascript触发的dummyurl

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    if ([[request.URL absoluteString] isEqualToString:kDummyURL]) {
        //key is pressed on HTML page, here you can implement what you want
        return NO;
    }
    return YES:
}