ios - 在 UIWebView 中检测键盘按下

标签 ios iphone uiwebview

我有一个 UIWebView,我用它来呈现样式化的 HTML 文本。由于 div 上的 contentEditable 设置为 true,Web View 中的内容是可编辑的。

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

最佳答案

首先定义一个虚拟 url

#define kDummyURL @"dummyurl://dummy"

然后在 View 中加载了一个javascript

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

并且在 should Start load with request try catch 将由您刚刚添加的 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:
}

关于ios - 在 UIWebView 中检测键盘按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20676777/

相关文章:

ios - RestKit在映射或实际插入CoreData DB之前比较本地对象和远程对象

iphone - IOS 中奇怪的 float 问题

javascript - 三个 js 场景的 UIWebView Javascript 垃圾收集

javascript - 如何使用webview在ios objective c safari中打开window.open方法

iphone - 如何实现uiscrollview的延迟加载

ios - Swift advancedBy 无法处理换行符 "\r\n"

ios - 从一开始就将免费购买的应用视为已购买

android - 如何在移动设备上调用 Facebook 页面的桌面站点?

iphone - iPad 应用程序的按安装付费机制?

ios - iOS-如何在UIWebView上自动播放youtube视频或直接与任何Video Player一起播放?