2013-08-06 3 views
1

У меня есть html-файл, отображаемый моим UIWebView в моем проекте. Я хочу скрыть клавиатуру ios и показать свою собственную виртуальную клавиатуру (написанную в JQuery) при редактировании ввода в UIWebView. Можно ли скрыть клавиатуру при редактировании контента в UIWebView? Я не могу использовать метод blur() для элемента, потому что хочу редактировать контент. Мне нужно сделать это без клавиатуры ios?Скрыть клавиатуру во время редактирования содержимого UIWebView

РЕШЕНИЕ

Я нашел решение.

- (void)viewDidLoad 
{ 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; 
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]]; 
    self.webView.delegate=self; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWillShow:) 
               name:UIKeyboardWillShowNotification object:nil]; 

    [super viewDidLoad]; 

} 
- (void)esconde { 
    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] 
windows]) 
     for (UIView *keyboard in [keyboardWindow subviews]) 
      if([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] 
== YES)        [keyboard removeFromSuperview]; 
} 
- (void)keyboardWillShow:(NSNotification *)aNotification { 
[self performSelector:@selector(esconde) withObject:nil afterDelay:0]; 
} 
+0

Если вы нашли ответ, отправьте его в качестве ответа, а затем примите его, чтобы другие не пытались найти решение, когда оно не требуется. Это также поможет другим, показывая, что вы нашли решение проблемы, которую они могут иметь. – CaptJak

+0

Я получаю предупреждение «вы не можете принять свой ответ через два дня» – amone

ответ

1

РЕШЕНИЕ

Я нашел решение.

- (void)viewDidLoad 
{ 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; 
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]]; 
    self.webView.delegate=self; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWillShow:) 
               name:UIKeyboardWillShowNotification object:nil]; 

    [super viewDidLoad]; 

} 
- (void)esconde { 
    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] 
windows]) 
     for (UIView *keyboard in [keyboardWindow subviews]) 
      if([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] 
== YES)        [keyboard removeFromSuperview]; 
} 
- (void)keyboardWillShow:(NSNotification *)aNotification { 
[self performSelector:@selector(esconde) withObject:nil afterDelay:0]; 
} 
Смежные вопросы