[iOS 禁用第三方输入法] 禁用第三方输入法+ExtensionPointIdentifier理解

news/2024/7/20 21:05:35 标签: ios, 应用, 输入法, 第三方

自从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


http://www.niftyadmin.cn/n/1557674.html

相关文章

表格基础

表格应用-1 获取 tBodies、tHead、tFoot、rows、cells 隔行变色 鼠标移入高亮 删除、添加一行 表格应用-2 搜索 版本1:基础版本——字符串比较 版本2:忽略大小写——大小写转换 版本3:模糊搜索——search的使用 版本4:多关键词——…

react、vue 使用node.js eventEmitter跨组件传参(还可以用来监听值的变化处理一些事情)

前言: 最近在react项目中,遇到了这样一个场景,首页有很多组件,地图组件,侧边栏,图层管理,甚至图层管理还有子组件。这样父/子/孙,甚至没有任何关系的组件都要能拿到首页的一些状态。…

[iOS Block] 视图A.B之间的回调实例

背景介绍 有两个视图控制器 A B B作为A的subViewController 要求 在B上处理点击事件 , 改变A上的元素属性值 一般处理的方法有代理/ 通知 / Block 这里用Block来做 1.在B上 typeDef 一个block typedef void(^PayWayViewControllerBlock) (NSString *payWayTpye , UIVi…

Windows10家庭版连接远程桌面出现credssp加密oracle修正问题

我发现我的win10不能连接别人的远程桌面,问题如下: 1.windows10家庭版需要修改注册表,家庭版没有组织策略: 2.winR打开快速启动命令行输入"regedit": 3.依次打开:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curren…

react使用(react-html-table-to-excel)把table导出为Excel以及配合antd使用

项目里有个把表格导出为Excel的功能,使用的是react-html-table-to-excel实现的也很简单,记录一下。 1.实现过程 1.下载依赖:npm install --save react-html-table-to-excel npm install --save react-html-table-to-excel 2.导入:import …

一行代码实现 按钮的选中与反选

记录一行代码 实现按钮的选择 以及反选 实现旋转效果 sender.selected !sender.selected; 注意点: 要设置 按钮的默认selected 是其有个初值 简单示例 代码如下 - (IBAction)btnTransForm:(UIButton*)sender {sender.selected !sender.selected;if (sender.selected) …

selenium 自动化工具

问题 今天在使用seleniumPhantomJS动态抓取网页时,出现如下报错信息: UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox insteadwarnings.warn(Selenium support for PhantomJS ha…

[iOS 自动打包]shell脚本使用-ipa_build 脚本使用

[转]IOS工程自动打包并发布脚本实现 30多个项目,由于均需要修改并打包,这个工作量很是很大的,网络上的自动打包教程确实很多,这里转一个好用的. 点击这里下载Shell自动打包脚本 首先: 1.您的xcode 必须附带“Command Line Tools” 拥有它,你就 可以通过命令行来完成IOS工程…