关于Custome Keyboard的一些坑

1.打开主程序:
一如很多前辈所说,即是打开containerAPP,苹果提供了NSExtensionContext下的OpenURL方法,但是官方文档中又提到:

Each extension point determines whether to support this method, or under which conditions to support this method. In iOS 8, only the Today extension point (used for creating widgets) supports this method.

可能苹果目的是所有的extension都支持该方法,但是在iOS8中只有Today extension 是支持的,而其他并不支持,想想现在都已经10.2了 :D

在stackoverflow上,找到了一个解决办法,是在iOS8.3+可以使用的。不知道后期是否还有更好的方法,但是这个是可以解决打开问题,如果有更好的方法,评论分享啊。

UIResponder* responder = self;
while ((responder = [responder nextResponder]) != nil) {
  if ([responder respondsToSelector:@selector(openURL:)] == YES) {
      [responder performSelector:@selector(openURL:)
                      withObject:url];
        }
    }
//url是主程序的URLScheme

主程序会在AppDelegate里的

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
   
    return YES;
}

里接收Extension发送来的请求,要处理什么事情,只要在这里进行就可以了

2.判断是否开启完全访问

[UIPasteboard generalPasteboard].string == nil ?

因为开启了完全访问的权限后,就能访问到系统的剪切板,所以通过这个方法间接的判断是否开启完全访问。

3.实时获取剪切板内容
可以考虑开启NSTimer,然后利用 [timer setFireDate:[NSDate distantPart]] 开启,在ViewDidDisappear里 [timer setFireDate:[NSDate distantFuture]] 关闭。

4.控制内存占用问题
因为苹果对自定义键盘严格的内存限制,超过会导致键盘直接崩溃,所以控制内存占用是重中之重
· 避免循环引用,及时释放
· 绘制文字会瞬间占用很大的内存,且无法立即释放,所以比如在加载Emoji表情的时候,尽量使用图片来显示。完整的Emoji表情,可以在http://www.unicode.org/emoji/index.html 找到。对应按键的字符,也最后使用图片。
· 加载图片使用imageWithContentsOfFile的方法
· 还有一些方法的使用可以参考搜狗输入法的优化总结

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容

  • 在六月份,总有很多热点信息是与高考有关的。昨天在朋友圈里看到一组“高考感人相片”,其中有一张是站在考场外的家长焦灼...
    留小馆阅读 243评论 4 3
  • 我带着黑白的面具 在形形色色的人群之中移动, 舞台的灯光, 只有在静谧的时刻 才会开启。 但,在喧哗的...
    蔷薇巧克力阅读 425评论 0 1
  • 长期从事编程活动的程序员都期望在50多岁时能爬到一个足够高的职位,或者能顺利的退休。 但我在这里讨论的可能是一个你...
    大圣众包阅读 463评论 2 2
  • SDWebImage的三个常用方法 愿编程让这个世界更美好
    小苗晓雪阅读 248评论 0 0