禁用编辑,但允许继续快速输入

时间:2019-06-01 15:38:50

标签: ios swift

我正在开发一个应用程序,在该应用程序中,用户需要能够输入较长的文本(例如期刊文章),但在应用程序的后续阶段才应允许对其进行编辑。

因此,我需要允许用户以“前进”方向键入UITextField,但完全禁用能够进一步选择文本并进行编辑(甚至使用退格键)的功能。

关于禁用选择/编辑,已经有很多答案(例如,在使用选择器视图作为输入时,例如Disabling user input for UITextfield in swift),但是我找不到任何可以满足我想要的行为的东西,尽管尝试使用文本字段委托方法的变体,我真的无法理解当前下一步的发展。

我认为我需要做三件事

1)允许编辑文本字段 2)禁用选择(例如通过点击)文本字段 3)禁用退格键?

1 个答案:

答案 0 :(得分:1)

据我了解,这段代码可以为您提供帮助:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    return textField.text!.count <= range.location
}

此方法来自UITextField的委托。

此外,您可以使用范围和替换字符串添加更复杂的检查。就像是要添加更多文本还是要删除文本。