Текстовое поле остается под пользовательской клавиатурой в UIWebView для iOS 8
Я создаю веб-приложение для iOS, и у меня есть пользовательская клавиатура. Когда я использую клавиатуру по умолчанию, она сразу показывает клавиатуру, а текстовое поле находится над клавиатурой. У меня был бы такой же результат, если бы я сменил клавиатуру на свою пользовательскую клавиатуру. Но проблема в том, что я уделяю основное внимание текстовому полю, когда моя пользовательская клавиатура включена. Загрузка имеет некоторую задержку, и при загрузке текстовое поле остается под клавиатурой. Вот мой код для пользовательского keybaord:
#import "KeyboardViewController.h"
#import "CustomKeyboardView.h"
@interface KeyboardViewController () <CustomKeyboardViewDelegate>
@property (nonatomic, strong) CustomKeyboardView *customKeyboardView;
@end
@implementation KeyboardViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.customKeyboardView = [[CustomKeyboardView alloc] init];
self.inputView = (UIInputView *) self.customKeyboardView;
self.customKeyboardView.delegate = self;
}
- (void)handleCharacter:(NSString *)character sender:(CustomKeyboardView *)sender
{
[self.textDocumentProxy insertText:character];
}
-(void)handelDelete:(CustomKeyboardView *)sender
{
[self.textDocumentProxy deleteBackward];
}
-(void)handleDismissKeyboard:(CustomKeyboardView *)sender
{
[self dismissKeyboard];
}
-(void)handleChangeKeyboard:(CustomKeyboardView *)sender
{
[self advanceToNextInputMode];
}
- (void)textWillChange:(id<UITextInput>)textInput {
// The app is about to change the document's contents. Perform any preparation here.
}
- (void)textDidChange:(id<UITextInput>)textInput {
// The app has just changed the document's contents, the document context has been updated.
[[NSNotificationCenter defaultCenter] postNotificationName:UITextViewTextDidChangeNotification object:textInput];
}
@end
Реализация класса CustomKeyboardView похожа на эту библиотеку. Любая помощь будет оценена.
1 ответ
Попробуйте использовать фоновые потоки, у вас есть задержка, потому что вы выполняете много кода перед тем, как сначала создать свой вид клавиатуры.