iOS 九宮格鍵盤的UIKeyboardTypeNumbersAndPunctuation默認類型

最近用戶反饋了一個 bug,說咱們的 app 有 bug,原本是顯示數字鍵盤的,缺顯示了符號,截圖以下: git

但是看過代碼,對於鍵盤的 type 設置的是 UIKeyboardTypeNumbersAndPunctuation,應該顯示數字和符號的。那這明顯就是 Apple 針對九宮格鍵盤給的默認類型不是想要的。github

而全鍵盤的時候,應該是下面這樣的:api

這就很坑了,找了半天也沒找到發現針對九宮格設置默認類型是數字,可是又能切換輸入法的。bash

最後偶然發現另一臺手機的九宮格默認是數字:app

仔細查找緣由,發現是由於手機設置裏面把 自動首字母大寫開關是關閉的。知道這個緣由就好解決了。直接設置 textfield 的首字母大寫關閉就行了。ui

_inputField.autocapitalizationType = UITextAutocapitalizationTypeNone;
複製代碼

另外還發現另一個方法,textInputContextIdentifier, 能夠記錄鍵盤使用類型。可是隻能再 app 運行中間記錄,若是 app 重啓,就失效了。spa

- (NSString *)textInputContextIdentifier
{
    return @"InputInviteCodeIdentifier";
}

複製代碼

參考:kemchenj.github.io/2017-08-07/code

相關文章
相關標籤/搜索