“plugin invalidated” ios 自定義鍵盤

國內似乎沒有人願意來為 iOS 系統寫一個輸入法,除了幾個寡頭大公司在做以外就沒有別的了。走近了中國特有的蘋果生態平台看看,發現其實裡邊都是空殼子,有意義的應用真的是少的可憐。

落格博客最近正在致力於給 iOS 平台寫第一款能真正支持碼表的雙拼輸入法,第一個兼容的雙拼方案自然是開放的“小鶴雙拼”,這中間踩了不少坑,陸續會發一些經驗出來。現在,先來緊急記錄一個坑:

在鍵盤使用過程當中,會偶爾彈出 plugin XXX.XXX.KeyBoardName invalidated 報錯日誌然後鍵盤就崩了。

當然,好消息是它幾乎只出現在模擬器上——我們都知道,模擬器的性能沒有真機那麼好就是了——但總的來說這個問題還是會遇到,但的確概率挺小的,但問題總要解決,不然使用者呼出鍵盤的時候鍵盤就會偶爾閃一下,尤其是幕後程式突然調到前臺的時候。

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

之前,大家都是這樣來給自訂鍵盤添加 view 的:

把自己用 nib 擼出來的鍵盤模型添加到預設的鍵盤view上,實際上不應該這麼做,如果你真的自己新建了一個鍵盤的view,那麼就應該直接給 UIInputViewControllerview 屬性賦值!

所以,正確的做法應該是:

這樣,這個錯誤就不會再出現了。

自訂鍵盤的高度

順便提一句,之所以還保存自訂鍵盤的引用,是因為這樣就可以給它添加約束,而隨後我們可以隨意調節約束的固定值來改變鍵盤的高度——即時改變哦!

 

由...出版 R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *