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