我有一个 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/