如何判斷是否是第三方輸入法

2021-06-09 04:24:44 字數 752 閱讀 6888

如使用者安裝了第三方的輸入法,我們就需要辨別出來:

在ios 4.2以上支援 uitextinputmode,可通過 [[uitextinputmode currentinputmode] primarylanguage] 來獲取當前輸入法,如果是自定義的這裡會顯示自定義資訊(例如:baidu。。)但是如何更好的識別呢,暫時也沒有找到令我滿意的方式:

需要知道的:

普通的數字鍵盤彈出時,列印[[uitextinputmode currentinputmode] primarylanguage]  跟當前語言相關,比如當前語言為en,列印所得是en-us;當前語言是zhhhans,列印所得是zh-hans;若改數字鍵盤是密碼鍵盤形式,列印所得都是en-us;

暫時可以通過以下方式解決:

1、獲取系統設定裡當前語言,例如ja(日語),可通過判斷primarylanguage 是否為en-us或者primarylanguage是否包含字首ja(注:primarylanguage 與當前語言並不完全相同);若不滿足前兩個條件,則應該是第三方輸入法;(這種方式也可能會有問題,加入除了乙個輸入法,名字是japan,誰知道呢??)

2、[uitextinputmode activeinputmodes],另外乙個規律是,如果是系統輸入法獲取的這個陣列中有包含乙個keyboardmode物件,而出現第三方輸入法鍵盤時,包含兩個keyboardmode物件,不知道算不算規律,暫時來看也是一種方法吧;

暫時採用的第一種方式,感覺更有依據性一些,如果有更好的方法,歡迎分享 

**

如何判斷是否是第三方輸入法

如使用者安裝了第三方的輸入法,我們就需要辨別出來 在ios 4.2以上支援 uitextinputmode,可通過 uitextinputmode currentinputmode primarylanguage 來獲取當前輸入法,如果是自定義的這裡會顯示自定義資訊 例如 baidu。但是如何更好的...

原創 MacOS 解除安裝第三方輸入法

概要 1 簡介 macos 中安裝的第三方輸入法不支援在輸入法的選單中直接進行解除安裝,注意是解除安裝不是移除。並且在 finder 的 應用程式 欄也是找不到安裝的第三方輸入法應用程式進行解除安裝的。有的輸入法提供了解除安裝的方法,但是需要先開啟該輸入法的 dmg 安裝包然後才能解除安裝。如果你的...

第三方判斷網路狀態

一,在 cocoapods 上 安裝好 afnetworking 二 在需要判斷網路狀態的 viewcontroller 上 匯入 afnetworking h 方法一 使用通知 當網路狀態發生改變的時候 reachability 會傳送 kreachabilitychangednotificati...