UIWebView键盘的accessoryBar隐藏

当前越来越多的iOS应用开始使用html进行交互显示,却会发现在UIWebView弹出的键盘比UITextView的键盘多出了左右移动以及完成按钮,那么如何去掉这些我们并不需要的按钮呢?苹果官方并没有给出方法,所以我们只能够自己来解决。

webview_keyboard.png

对于不同的iOS版本,我们的处理方法也会不同,因为官方没有提供方法,所有的方法都是需要自己去发现和修改。这里只写出iOS7以上版本的方法:

func hideKeyBoard() -> Void {
        for window in UIApplication.sharedApplication().windows {
            if !window.isMemberOfClass(UIWindow.self) {
                let keyboardWindow = window
                if #available(iOS 9.0, *) {
                    self.removeAccessoryBarForiOS9(keyboardWindow as UIView)
                } else if #available(iOS 8.0, *) {
                    self.removeAccessoryBarForiOS8(keyboardWindow as UIView)
                } else {
                    self.removeAccessoryBarForiOS7(keyboardWindow as UIView)
                }
            }
        }
        if #available(iOS 9.0, *) {
            self.removeAccessoryBarForiOS9(UIApplication.sharedApplication().windows.last! as UIView)
        }
    }
    
    func removeAccessoryBarForiOS9(keyboardWindow:UIView) -> Void {
        for possibleFormView:UIView in keyboardWindow.subviews {
            if possibleFormView.isMemberOfClass(NSClassFromString("UIInputSetContainerView")!) {
                for subviewOfInputSetContainerView in possibleFormView.subviews {
                    if subviewOfInputSetContainerView.isMemberOfClass(NSClassFromString("UIInputSetHostView")!) {
                        for subviewOfInputSetHostView in subviewOfInputSetContainerView.subviews {
                            // 隐藏工具条NSClassFromString
                            if subviewOfInputSetHostView.isMemberOfClass(NSClassFromString("UIWebFormAccessory")!) {
                                subviewOfInputSetHostView.layer.opacity = 0
                                subviewOfInputSetHostView.frame = CGRectZero
                            } else if (subviewOfInputSetHostView.isMemberOfClass(NSClassFromString("_UIR
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值