iOS thirdKeyboard Develop (APP Extension)
如果需要开发第三方键盘 首先得了解一下苹果官方文档 https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html
然后建议看一下 APPExtension
http://www.cocoachina.com/ios/20140918/9677.html
键盘应用属于你的hostAPP 所以如果你要了解appGroups来做到两个应用间信息传输
使用方法
NSUserDefaults *keyboarddefaults = [[NSUserDefaults alloc] initWithSuiteName:appGroups];
appGroups是我们设置的字段 与添加appGroup的字段一致
xcode会给我们生成keyboard的类 在这个类 我们可以做第三方键盘
1.这个类中建议用autolayout做约束
2.
CGFloat _expandedHeight = 256;
NSLayoutConstraint *_heightConstraint = [NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0 constant: _expandedHeight];
[self.view addConstraint: _heightConstraint];
该方法可以设置键盘高度
我遇到的问题:在updateContraint 中调用无效
3. 输入文字:调用协议方法 textDocumentProxy.
- (BOOL)hasText;
- (void)insertText:(NSString *)text; //输入文字
- (void)deleteBackward;//删除文字
我们的键盘如果要通过审核 就必须要有一个下一个输入法的按钮 参照原生的那个地球按钮
调用
- (void)advanceToNextInputMode
这个方法就可以完成
apple开放的API较少 自己看文档是个很好的选择
4 还遇到一个问题:暂时无法做到从自己的键盘端跳转到mainApp
以前使用webview是可以做到 但是apple更新之后禁用这个方法 stackOverflow上的建议也无效
希望有解决这个问题的人可以告诉我
5 我们的组织 QQ群248458280 期待大家的光临 一起学习 一起成长
iOS thirdKeyboard Develop (APP Extension)的更多相关文章
- iOS - App Extension 整体总结
一.App Extension的介绍 App Extension可以让你扩展你APP的自定义功能和内容,使用户可以在与其他应用或者系统进行互动的时候去使用它.app extension即为本文所说的e ...
- 关于报错:'sharedApplication' is unavailable: not available on iOS (App Extension) - Use view controller based
最近在看Extension相关知识的时候,自己写了个小demo 发现[UIApplication sharedApplication]这个方法敲不出来了, 总是报错:'sharedApplicatio ...
- iOS9中找不到XXX.dylib 与 is unavailable no availabel on ios (app extension) - use view controller 的解决办法
在 iOS9 中现在找不到 XXX.dylib 了,比如libz.tbd 如果要用到 libz.dylib,可以用下面的办法,来自 Stack Overflow. Go to Build Phase ...
- 揭秘 iOS App Extension 开发 —— Today 篇
转自:http://www.cocoachina.com/ios/20160619/16760.html 本文授权转载,作者:Cyandev(简书) 从 iOS 8 开始,苹果引入了全新的 App E ...
- iOS App Extension入门
转自简书:http://www.jianshu.com/p/8cf08db29356 iOS 10推出了很多新功能,其中有几个高调的变化:通知栏更加实用,电话可以防骚扰,iMessage变得更加有 ...
- iOS 在Host App 与 App Extension 之间发送通知
如何从你的一个App发送通知给另一个App? (例:搜狗输入法下载皮肤完成后使用皮肤) 注:搜狗输入法是App.而键盘是Extension 当你为你的App 添加 App Extension时,如果想 ...
- App Extension Today
App Extensions 是iOS8新开放的扩展机制,之后不断增加功能.App Extension Programming Guide: Today 不喜欢废话,直接上干货! 一:重要概 ...
- App Extension编程指南(iOS8/OS X v10.10)中文版
http://www.cocoachina.com/ios/20141023/10027.html 当iOS 8.0和OS X v10.10发布后,一个全新的概念出现在我们眼前,那就是应用扩展.顾名思 ...
- App Extension的脱壳办法
App Extension的脱壳办法 从app store下载的app和app extension是加过密的,可以通过otool查看: $ otool -l binary_name | grep cr ...
随机推荐
- vCSA加域&vcenter关联域&设置管理员权限
vCSA 与 Windows vCenter对比 1.部署起来更简单快捷. 2.vCSA基于Linux授权费用节省. 3.功能在6.0之后达到与Windows vCenter一样的功能,之后可能会反超 ...
- 如何把excel 数据做dataprovide
1. 新建一个类,实现接口Iterator import java.io.FileInputStream; import java.io.FileNotFoundException; import ...
- PE文件学习系列笔记四-C++实现PE文件的分析
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综述: 首 ...
- 使用ef查询有缓存的问题
使用mvc ef更新后数据之后刷新页面,发现页面的数据没有变,而数据库的数据更新了,找了一点资料,是因为ef6有个缓存机制: Repository 类: //此方法查询结果有缓存 public Lis ...
- java selenium (二) 环境搭建方法一
webdriver 就是selenium 2. webdriver 是一款优秀的,开源的,自动化测试框架. 支持很多语言. 本文描述的是用java Eclipse 如何搭建环境 阅读目录 ...
- php学习笔记之wamp安装配置
一.下载apache.php.mariadb apache 下载地址:http://www.apachehaus.com/cgi-bin/download.plx VC9版本分为:32位版.64位版. ...
- 在Oracle中使用Entity Framework 6 CodeFirst
项目中需要将系统从SQLServer数据库迁移到Oracle上.由于原大部分数据访问操作都是通过包装了Entity Framework的统一访问入口实现的,所以需要研究Entity Framework ...
- MySQL 5.6查询优化器新特性的“BUG” eq_range_index_dive_limit
本文转自 http://www.imysql.cn 最近碰到一个慢SQL问题,解决过程有点小曲折,和大家分享下. SQL本身不复杂,表结构.索引也比较简单,不过个别字段存在于多个索引中. CREATE ...
- Yii2中request的使用
1.普通的get和pst请求 $request = Yii::$app->request; $get = $request->get(); // equivalent to: $get = ...
- CABasicAnimation的基本使用方法(移动·旋转·放大·缩小)
出处:http://blog.csdn.net/iosevanhuang/article/details/14488239 CABasicAnimation类的使用方式就是基本的关键帧动画. 所谓关键 ...