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

在iOS 9中隐藏UIWebView的快捷键盘,第1张

概述我正在为iOS开发PhoneGap应用程序,我需要摆脱新的iOS 9快捷键.现在我在 – (void)viewDidLoad方法中执行以下 *** 作 if ([self.webView respondsToSelector:@selector(inputAssistantItem)]) { UITextInputAssistantItem *inputAssistantItem = [self. 我正在为iOS开发PhoneGap应用程序,我需要摆脱新的iOS 9快捷键.现在我在 – (voID)vIEwDIDLoad方法中执行以下 *** 作
if ([self.webVIEw respondsToSelector:@selector(inputAssistantItem)]) {    UITextinputAssistantItem *inputAssistantItem = [self.webVIEw inputAssistantItem];    inputAssistantItem.leadingbarbuttonGroups = @[];    inputAssistantItem.trailingbarbuttonGroups = @[];}

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

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

谢谢你的帮助!

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

#import <objc/runtime.h>- (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属性添加到输入元素中

<input autocomplete="off" autocorrect="off" autocAPItalize="off" spellcheck="false" />

P.S我的应用程序现在正在审核中.仍然不知道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
: This property is typically used to attach an accessory vIEw to the
system-supplIEd keyboard that is presented for UITextFIEld and
UITextVIEw objects.

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

UPDATE

要从WKWebVIEw中删除附件视图,请使用WKContentVIEw而不是UIWebbrowserVIEw

总结

以上是内存溢出为你收集整理的在iOS 9中隐藏UIWebView的快捷键盘全部内容,希望文章能够帮你解决在iOS 9中隐藏UIWebView的快捷键盘所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1099828.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存