在iOS 9中隐藏UIWebView的快捷键盘

我正在为iOS开发PhoneGap应用程序,我需要摆脱新的iOS 9快捷键。 现在我在- (void)viewDidLoad方法中执行以下操作

 if ([self.webView respondsToSelector:@selector(inputAssistantItem)]) { UITextInputAssistantItem *inputAssistantItem = [self.webView inputAssistantItem]; inputAssistantItem.leadingBarButtonGroups = @[]; inputAssistantItem.trailingBarButtonGroups = @[]; } 

这隐藏了撤消/重做和复制/粘贴按钮,但快捷栏仍然显示在键盘上并且上面有导航按钮。

在此处输入图像描述

我怎样才能完全摆脱快捷栏。

谢谢你的帮助!

*** 更新1 ***

我的完整工作代码如下。 希望这可以帮到某人(感谢@Clement的回复)

 #import  - (void) hideKeyboardShortcutBar: (UIView *)view { for (UIView *sub in view.subviews) { [self hideKeyboardShortcutBar:sub]; if ([NSStringFromClass([sub class]) isEqualToString:@"UIWebBrowserView"]) { Method method = class_getInstanceMethod(sub.class, @selector(inputAccessoryView)); IMP newImp = imp_implementationWithBlock(^(id _s) { if ([sub respondsToSelector:@selector(inputAssistantItem)]) { UITextInputAssistantItem *inputAssistantItem = [sub inputAssistantItem]; inputAssistantItem.leadingBarButtonGroups = @[]; inputAssistantItem.trailingBarButtonGroups = @[]; } return nil; }); method_setImplementation(method, newImp); } } } - (void)viewDidLoad { [super viewDidLoad]; [self hideKeyboardShortcutBar:self.webView]; } 

这个技巧将隐藏撤消/重做和导航按钮。 但自动预测文本仍将显示在键盘上。 要隐藏快捷方式栏,请将html属性添加到输入元素中

  

PS我的应用程序现在正在审核中。 仍然不知道Apple是否会批准这一点。

*** 更新2 ***

我的应用程序已获Apple批准

使用方法swiziling我们可以删除键盘快捷键(仅适用于ObjC)。

  - (void)hideKeyboardShortcutBar { Class webBrowserClass = NSClassFromString(@"UIWebBrowserView"); Method method = class_getInstanceMethod(webBrowserClass, @selector(inputAccessoryView)); IMP newImp = imp_implementationWithBlock(^(id _s) { if ([self.webView respondsToSelector:@selector(inputAssistantItem)]) { UITextInputAssistantItem *inputAssistantItem = [self.webView inputAssistantItem]; inputAssistantItem.leadingBarButtonGroups = @[]; inputAssistantItem.trailingBarButtonGroups = @[]; } return nil; }); method_setImplementation(method, newImp); } 

inputAccessoryView :此属性通常用于将附件视图附加到为UITextField和UITextView对象呈现的系统提供的键盘。

因此,每次键盘弹出时都会触发新的实现块。

UPDATE

要从WKWebView删除附件视图, WKWebView使用WKContentView而不是UIWebBrowserView