自从iOS8开始,许多第三方输入法出现,但是旧项目里面没有对第三方输入法做过适配,倒是用户出现许多问题,
网上有代码,在
Appdelegate.m中,添加
- (BOOL)application:(UIApplication *)application shouldAllowExtensionPointIdentifier:(NSString *)extensionPointIdentifier
{
return NO;
}
就可以在运行本app时候,禁用掉第三方输入法,(注意,此时系统的输入法被默认修改为系统输入法,如果需要在QQ等上用第三方输入法,需再去长按��键盘 去设置)
问题来了
为什么appdelegate中这句代码可以干掉第三方输入法?
因为:自从iOS8以后,苹果引入了扩展点(ExtensionPointIdentifier)这个概念
iOS 8系统有6个支持扩展的系统区域,分别是Today、Share、Action、Photo Editing、Storage Provider、Custom keyboard。支持扩展的系统区域也被称为扩展点。
其中,就有这个
Custom Keyboard
苹果公司在2007年率先推出了触摸屏键盘,但一直没多大改进。在这一方面,Android则将键盘权限开放给了第三方开发者,所以出现了许多像Swype,SwiftKey等优秀的键盘输入法。在iOS 8中,苹果终于将键盘权限开发给了第三方开发者,自定义键盘输入法可以让用户在整个系统范围内使用。
更多扩展点 可以看这个
http://www.cocoachina.com/industry/20140721/9205.html