2013-12-19 7 views
0

У меня есть UIWebView, который я использую для визуализации текста в стиле HTML. Содержимое в веб-режиме доступно для редактирования, благодаря contentEditable, на div, установленном в true.Обнаружение нажатия клавиш в UIWebView

Я хотел бы продолжать перехватывать нажатия клавиш пользователем, чтобы я мог изменять размер UIWebView по типу пользователя. Как перехватить события нажатия клавиш?

+0

попробуйте [это] (http://stackoverflow.com/questions/12361423/is-there-a-way-to-detect-a-touch -on-the-screen-keyboard? answertab = votes # tab-top) – johnMa

+0

@johnMa Это здорово, но как я могу различать нажатие клавиши удаления и нормальное нажатие клавиши. В случае удаления мне нужно будет уменьшить размер веб-просмотра, и в последнем случае мне нужно будет увеличить его. – Bourne

ответ

1

Сначала определить фиктивный URL

#define kDummyURL @"dummyurl://dummy" 

Тогда в силу ли нагрузка добавить Javascript

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

и должен начать загрузку с просьбой попытаться захватить dummyurl, которые будут запускаемое JavaScript У только что добавлено

- (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: 
} 
Смежные вопросы