Как отключить кнопку перехода с клавиатуры iPhone, когда текстовое поле сфокусировано внутри UIWebView?

#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]]) было бы лучше.