ios 指定页面禁用第三方键盘,使用系统的键盘

Posted 令狐冲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 指定页面禁用第三方键盘,使用系统的键盘相关的知识,希望对你有一定的参考价值。

因为项目需要,需要在添加银行卡和提现页面使用数字键盘, 如果用户没有安装第三方键盘是没啥大问题的,但是如果用户手机安装了第三方的键盘的话,有时候会无法调用起第三方的数字键盘,或者第三方键盘样式不符合,这个时候系统的数字键盘是比较符合我们的需求的。那么我们如何在特定的页面使用系统自带的数字键盘呢?

其实简单我们只需要实现 UIApplicationDelegate 的如下代理方法即可:

   /// 此方法的作用是是否使用第三方键盘
    ///
    /// - Parameters:
    ///   - application: application 对象
    ///   - extensionPointIdentifier: 第三方键盘的标识
    /// - Returns: true 表示使用第三方键盘 fanse 表示不使用
    func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplicationExtensionPointIdentifier) -> Bool {
        //遍历当前根控制器的所有子控制器找到我们需要的子控制器
        for vc in (self.window?.rootViewController?.childViewControllers)! {
            //这里的MainNavigationController是我自定义的导航控制器
            if vc.isKind(of: MainNavigationController.self) {
                for vc1 in vc.childViewControllers {
                    //如果是 添加银行卡界面 和 提现页面 禁止使用第三方键盘
                    if  vc1.isKind(of: AddBBankCardController.self) || vc1.isKind(of: WithdrawViewController.self)  {
                        return false
                    }
                }
            }
        }
        return true
    }

关于系统自带的数字键盘无法输入小数点的问题如何解决请看我的另一篇文章:  ios自定义数字键盘

以上是关于ios 指定页面禁用第三方键盘,使用系统的键盘的主要内容,如果未能解决你的问题,请参考以下文章

ios15.6下拉搜索不弹键盘

在app中屏蔽第三方键盘

[Cordova/Phonegap] Cordova iOS 应用在第三方输入法的键盘弹出(点击输入框)时,页面不上移,导致输入框被键盘遮挡 的解决办法

我可以为我的应用禁用自定义键盘 (iOS8) 吗?

iOS 13 禁用 UITextFields 的浮动键盘功能

如何禁用 EditText 中的 SwiftKey(第三方键盘)行为?