目前,我正在像这样的按钮目标中设置自动资本化
//This method is fired when keyboard is still active
- (IBAction)changeAutoCapitalization:(id)sender
{
self.textView.autocapitalizationType = UITextAutocapitalizationTypeWords;
}
但这不会使键盘变成资本。
答案 0 :(得分:2)
修改UITextAutocapitalizationType后,您必须立即调用[self.textView reloadInputViews]
才能立即更改键盘。
答案 1 :(得分:0)
尝试在初始化后添加:
self.textView.autocapitalizationType = UITextAutocapitalizationTypeWords;
OR
该设备上的“自动资本化”选项很可能已关闭。您可以在“设置”中找到该选项>一般>键盘。
答案 2 :(得分:0)
如果您发现要进行大量与文本相关的自定义,则将 UITextView
子类化可能会有所帮助,以保持功能封装。
注意:如果在模拟器上测试,请确保您使用的是 模拟器的键盘,通过进入菜单:I/O -> 键盘 -> 切换 软件键盘
如果您要自动添加文本,例如响应按钮点击,而 Shift 键关闭,那么您可以使用以下模式:
autocapitalizationType = .allCharacters //Activate shift key
autocorrectionType = .no //Don't show all-caps auto suggest
reloadInputViews() //Apply changes
然后,恢复到句子大写,例如当一行被清除时:
if (autocapitalizationType = .allcharacters) {
autocapitalizationType = .sentences //Activate sentence capitalization
autocorrectionType = .yes //Show auto suggest
reloadInputViews() //Apply changes
}
其他大小写选项:
.none
.words
您可能还需要在按下任何非输入键时执行此操作。为此,请覆盖 insertText
中的 UIKeyInput
,并检查输入的文本字符串:
if (text != "\n") {
if (autocapitalizationType == .allCharacters) {
autocapitalizationType = .sentences //Activate sentence capitalization
autocorrectionType = .yes //Show auto suggest
reloadInputViews() //Apply changes
}
//Respond to any character sequences
//...
}