有没有办法在不通过委托的情况下将 iPhone 键盘设置为全部大写

Is there a way to set the iPhone keyboard to all caps without going through delegate

我有一个可以在小键盘和字母数字键盘之间切换的文本字段(出于设计原因)。这是代码:

self.tfID.keyboardType = UIKeyboardTypeAlphabet;
[self.tfID reloadInputViews];

问题是,当我从小键盘切换到字母数字时,它不会自动打开大写,即使该字段设置为 UITextAutocapitalizationTypeAllCharacters。我不想通过委托来执行此操作,因为我仍然希望用户在选择时输入小写字符。有办法吗?

编辑:键入第一个字符后,大写锁定重新打开,因此只有第一个字符小写。

我试过了,很管用。如果您在文本字段上立即调用 resignFirstResponder,然后调用 becomeFirstResponder,而不是在您的文本字段上调用 ​​reloadInputViews,它将再次自动切换到第一个字符的全部大写。这确实略微显示了从小写键到所有大写键的动画,但它确实实现了为第一个字符自动返回到所有大写键的功能目标。

self.tfID.keyboardType = UIKeyboardTypeAlphabet;
[self.tfID resignFirstResponder];
[self.tfID becomeFirstResponder];