Удалите кнопки "Следующая / Предыдущая" (inputAccessoryView) для пользовательской клавиатуры в iOS8 WebView
Пожалуйста, потерпите меня, я много искал в Интернете и не смог найти решение, так как это новый API.
Я пытаюсь создать пользовательскую клавиатуру для iOS 8. Она отлично работает, за исключением WebView! Имеет кнопку "предыдущий-следующий", которая находится в inputAccessoryView
, Я знаю, что это свойство доступно только для чтения для веб-просмотра, но поскольку iOS 8 позволяет пользователям иметь собственную клавиатуру, я предполагаю, что это представление должно быть где-то редактируемым. Кто-нибудь сталкивался с той же проблемой? Любая помощь будет оценена.
2 ответа
Вы можете попробовать и улучшить это. попробуйте вызвать эту функцию внутри вашего обработчика событий UIKeyboardDidShowNotification.
-(void) removeKeyboard {
UIWindow *keyboardWindow = nil;
for (UIWindow *testWindow in [[UIApplication sharedApplication] windows]) {
if (![[testWindow class] isEqual : [UIWindow class]]) {
keyboardWindow = testWindow;
break;
}
}
// Locate UIWebFormView.
for (UIView *possibleFormView in [keyboardWindow subviews]) {
if ([[possibleFormView description] hasPrefix : @"<UIInputSetContainerView"]) {
for (UIView* peripheralView in possibleFormView.subviews) {
for (UIView* peripheralView_sub in peripheralView.subviews) {
// hides the backdrop (iOS 8)
if ([[peripheralView_sub description] hasPrefix : @"<UIKBInputBackdropView"] && peripheralView_sub.frame.size.height == 44) {
[[peripheralView_sub layer] setOpacity : 0.0];
}
// hides the accessory bar
if ([[peripheralView_sub description] hasPrefix : @"<UIWebFormAccessory"]) {
for (UIView* UIInputViewContent_sub in peripheralView_sub.subviews) {
CGRect frame1 = UIInputViewContent_sub.frame;
frame1.size.height = 0;
peripheralView_sub.frame = frame1;
UIInputViewContent_sub.frame = frame1;
[[peripheralView_sub layer] setOpacity : 0.0];
}
CGRect viewBounds = peripheralView_sub.frame;
viewBounds.size.height = 0;
peripheralView_sub.frame = viewBounds;
}
}
}
}
}
}
Надеюсь это поможет...
Это уровень просмотров в аксессуаре:
(UIWebFormAccessory) -> (UIToolbar) -> (UIImageView, UIToolbarButton, UIToolbarButton)
Снятие или масштабирование до нулевой высоты вспомогательной планки приведет к появлению черной области. Вы можете играть вокруг рамки или границ основного вида. или если вы просто хотите избавиться от кнопок, просто попробуйте установить непрозрачность 0 на кнопку UITool, кнопка на панели инструментов находится внутри панели uitoolbar.
Используйте это, это работает как очарование, и это намного чище, чем другие решения. Это взлом с помощью inputAccessoryView для UIWebBrowserView (внутренний UIWebView).
Удачи с кодированием!