ios - 在 iOS8 WebView 中删除自定义键盘的下一个/上一个按钮 (inputAccessoryView)

标签 ios uiwebview keyboard ios8 uiinputviewcontroller

请耐心等待,我在互联网上搜索了很多,但我找不到解决方案,因为它是一个新的 API。

我正在尝试为 iOS 8 创建一个自定义键盘。除了在 WebView 中,它工作得很好! 它有上一个-下一个按钮,位于 inputAccessoryView 中。我知道它是 webview 的只读属性,但由于 iOS 8 允许用户使用自定义键盘,我认为这个 View 应该可以在某处编辑。有人遇到过同样的问题吗?任何帮助将不胜感激。

最佳答案

您可以尝试改进它。尝试在您的 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;

                    }
                }

            }
        }
    }

}

希望这有助于...

这是附件中的 View 级别:

(UIWebFormAccessory) -> (UIToolbar) -> (UIImageView,UIToolbarButton,UIToolbarButton)



将辅助栏移除或缩放到零高度将导致黑色区域。您可以在主视图的框架或边界周围玩耍。或者,如果您只想摆脱按钮,只需尝试在 UIToolbutton 上设置 0 不透明度,工具按钮位于 uitoolbar View 内

关于ios - 在 iOS8 WebView 中删除自定义键盘的下一个/上一个按钮 (inputAccessoryView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25022089/

相关文章:

ios - 我已经为聊天应用程序编写了代码,适用于 iOS 12,但在 iOS 13 中,它返回 nil 值

ios - 自定义键盘可以访问用户照片吗?

ios - 保留 "session only"cookies, iOS

iphone - 如何从 Javascript 调用 Objective-C?

java - 蓝牙键盘的协议(protocol)?

ios - 如何在动态创建的文本字段中设置 ScrollView 的内容偏移量?

javascript - 如何使用 Swift webView 调用在正文中返回 HTML 字符串的 JavaScript 函数?

batch-file - 使用批处理文件按键盘键

c - X11/Xlib : virtual keyboard input and keyboard mapping synchronization issue

javascript - 延迟加载图像在 iPhone 浏览器中不起作用