6

Can you disable 3rd party keyboards in iOS?

If so, how?

Snowcrash
  • 80,579
  • 89
  • 266
  • 376
  • Duplicate of http://stackoverflow.com/questions/24557373/can-i-disable-custom-keyboards-ios8-for-my-app – pauln Feb 01 '15 at 12:07

4 Answers4

22

Add this method to your UIApplicationDelegate

-(BOOL)application:(UIApplication *)application shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier
    {

        if (extensionPointIdentifier == UIApplicationKeyboardExtensionPointIdentifier)
        {
            return NO;
        }

        return YES;
    }
Denis Krivitski
  • 654
  • 8
  • 11
5

Swift 5.1

Add to AppDelegate.Swift:

func application(application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: String) -> Bool {
    if (extensionPointIdentifier == UIApplication.ExtensionPointIdentifier.keyboard.rawValue) {
        return false
    }

    return true
}
Daniil
  • 141
  • 1
  • 11
DisplayName
  • 152
  • 1
  • 4
  • Actually the answer is not correct. The function should be: `func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplication.ExtensionPointIdentifier) -> Bool` – Pavel Stepanov Jun 10 '21 at 11:15
  • I disagree with the comment above me. For Swift 5, the original answer worked, the comment did not. – asterisk12 Jan 20 '22 at 17:06
0

Proper swift 5.1 version

func application(
    _ application: UIApplication,
    shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplication.ExtensionPointIdentifier
) -> Bool {
    return extensionPointIdentifier != UIApplication.ExtensionPointIdentifier.keyboard
}
manicaesar
  • 5,024
  • 3
  • 26
  • 29
Pavel Stepanov
  • 891
  • 8
  • 13
0

for Swift 5.4+ ,it will more swift.

in your class AppDelegate:

func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplication.ExtensionPointIdentifier) -> Bool {
    if(extensionPointIdentifier ==  .keyboard){
        return false
    }
    return true
}
leonardosccd
  • 1,503
  • 11
  • 12