Swift iOS试图即时更改UITextAutocapitalization类型

时间:2018-09-06 01:22:58

标签: ios swift uitextfield uitextfielddelegate

我有2个UITextFields已将UITextAutocapitalizationType设置为 .sentences 。如果第一个UITextField不以句号或问号结尾,我希望第二个UITextField以小写字母开头。我可以通过编程方式将第一个字母设置为小写,但是,我无法让用户将其覆盖为大写,并且我希望他们能够做到这一点。

我采用的方法是,如果第一个UITextField不以句号或问号结尾,则将第二个UITextField的UITextAutocapitalizationType设置为 .none 。一旦用户超过了第二个文本字段中的第一个字符,我便将UITextAutocapitalizationType设置回 .sentences 。我遇到的问题是在用户键入时似乎没有UITextField知道要更新其UITextAutocapitalizationType的问题。它一直等到我离开UITextField并返回它。

我尝试对第二个UITextfield进行强制刷新,但这并不能解决问题。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

一旦用户超过了第二个文本字段中的第一个字符,则需要通过以下方法以编程方式将每个句子的第一个字符设置为大写:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

}