最近用戶反饋了一個 bug,說咱們的 app 有 bug,原本是顯示數字鍵盤的,缺顯示了符號,截圖以下: git
但是看過代碼,對於鍵盤的 type 設置的是 UIKeyboardTypeNumbersAndPunctuation
,應該顯示數字和符號的。那這明顯就是 Apple 針對九宮格鍵盤給的默認類型不是想要的。github
而全鍵盤的時候,應該是下面這樣的:api
這就很坑了,找了半天也沒找到發現針對九宮格設置默認類型是數字,可是又能切換輸入法的。bash
最後偶然發現另一臺手機的九宮格默認是數字:app
仔細查找緣由,發現是由於手機設置裏面把 自動首字母大寫開關是關閉的。知道這個緣由就好解決了。直接設置 textfield 的首字母大寫關閉就行了。ui
_inputField.autocapitalizationType = UITextAutocapitalizationTypeNone;
複製代碼
另外還發現另一個方法,textInputContextIdentifier
, 能夠記錄鍵盤使用類型。可是隻能再 app 運行中間記錄,若是 app 重啓,就失效了。spa
- (NSString *)textInputContextIdentifier
{
return @"InputInviteCodeIdentifier";
}
複製代碼