#iphone #objective-c #ios #uiwebview #soft-keyboard
#iPhone #objective-c #iOS #uiwebview #программная клавиатура
Вопрос:
На одном из экранов в моем приложении отображается UIWebView с веб-формой HTML. В настоящее время, когда текстовое поле сфокусировано и отображается клавиатура, отображается кнопка перехода. В настоящее время у меня нет пользователя для кнопки перехода, и нажатие на нее ничего не делает.
Как можно отключить или удалить эту кнопку или как я могу изменить клавиатуру, которая отображается в UIWebView?
Комментарии:
1. вы имеете в виду текстовое поле на веб-странице или на вашей странице за пределами WebView?
2. Извините, из вашего заголовка кажется, что текстовое поле находится внутри UIWebView..
Ответ №1:
Я думаю, что единственный вариант, который у вас есть, — это зарегистрироваться для обратного вызова, когда отобразится клавиатура, и получить ссылку UIView на клавиатуру и добавить отключенную кнопку перехода поверх фактической кнопки перехода на клавиатуре.
1) Сначала зарегистрируйтесь для получения уведомлений keyboardWillShow..
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];
2) В вашей функции keyboardWillShow просмотрите все подвиды окна приложения, чтобы получить ссылку на клавиатуру..
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView* keyboard;
//Iterate though each view inside of the selected Window
for(int i = 0; i < [tempWindow.subviews count]; i ){
keyboard = [tempWindow.subviews objectAtIndex:i];
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES){
//Keyboard is now a UIView reference to the UIKeyboard we want. From here we can add a subview
//to th keyboard like a new button
}
}
код, бесстыдно скопированный из этой ссылки..Посмотрите на это .. очень информативный поток..
Я не знаю, существует ли какой-либо другой метод..Надеюсь, это будет полезно..
Комментарии:
1. Я думаю,
if([keyboard isKindOfClass:[UIKeyboard class]])
было бы лучше.