“plugin invalidated” ios 自定义键盘

国内似乎没有人愿意来为 iOS 系统写一个输入法,除了几个寡头大公司在做以外就没有别的了。走近了中国特有的苹果生态平台看看,发现其实里边都是空壳子,有意义的应用真的是少的可怜。

落格博客最近正在致力于给 iOS 平台写第一款能真正支持码表的双拼输入法,第一个兼容的双拼方案自然是开放的“小鹤双拼”,这中间踩了不少坑,陆续会发一些经验出来。现在,先来紧急记录一个坑:

在键盘使用过程当中,会偶尔弹出 plugin XXX.XXX.KeyBoardName invalidated 报错日志然后键盘就崩了。

当然,好消息是它几乎只出现在模拟器上——我们都知道,模拟器的性能没有真机那么好就是了——但总的来说这个问题还是会遇到,但的确概率挺小的,但问题总要解决,不然用户呼出键盘的时候键盘就会偶尔闪一下,尤其是后台程序突然调到前台的时候。

好了 Talk is cheap, just show me the code :

之前,大家都是这样来给自定义键盘添加 view 的:

把自己用 nib 撸出来的键盘模型添加到默认的键盘view上,实际上不应该这么做,如果你真的自己新建了一个键盘的view,那么就应该直接给  UIInputViewController 的 view 属性赋值!

所以,正确的做法应该是:

这样,这个错误就不会再出现了。

自定义键盘的高度

顺便提一句,之所以还保存自定义键盘的引用,是因为这样就可以给它添加约束,而随后我们可以随意调节约束的固定值来改变键盘的高度——实时改变哦!

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注