我正在开发一个应用程序,在该应用程序中,用户需要能够输入较长的文本(例如期刊文章),但在应用程序的后续阶段才应允许对其进行编辑。
因此,我需要允许用户以“前进”方向键入UITextField,但完全禁用能够进一步选择文本并进行编辑(甚至使用退格键)的功能。
关于禁用选择/编辑,已经有很多答案(例如,在使用选择器视图作为输入时,例如Disabling user input for UITextfield in swift),但是我找不到任何可以满足我想要的行为的东西,尽管尝试使用文本字段委托方法的变体,我真的无法理解当前下一步的发展。
我认为我需要做三件事
1)允许编辑文本字段 2)禁用选择(例如通过点击)文本字段 3)禁用退格键?
答案 0 :(得分:1)
据我了解,这段代码可以为您提供帮助:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return textField.text!.count <= range.location
}
此方法来自UITextField的委托。
此外,您可以使用范围和替换字符串添加更复杂的检查。就像是要添加更多文本还是要删除文本。