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

时间:2014-07-29 18:06:22

标签: ios uiwebview keyboard ios8 uiinputviewcontroller

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

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

2 个答案:

答案 0 :(得分:7)

您可以尝试改进这一点。尝试在您的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) - &gt; (UIToolbar) - &gt; (的UIImageView,UIToolbarButton,UIToolbarButton)



移除或缩放至零高度附件栏将导致黑色区域。你可以玩主视图的框架或边界。或者如果您只想摆脱按钮,只需尝试在UITool按钮上设置0不透明,工具按钮在uitoolbar视图中

答案 1 :(得分:2)

使用this,它就像一个魅力,它比其他解决方案更清洁。它使用了用于UIWebBrowserView(内部UIWebView)的inputAccessoryView进行黑客攻击。

编码祝你好运!