如何防止uitextview中的现有文本被覆盖

时间:2017-05-29 20:22:24

标签: ios

我在我的测试版应用的1个屏幕中添加了一个UITextView。首次打开屏幕时,它包含文本“测试是否添加文本”。 enter image description here如果用户点击UITextView,则选择所有预先存在的文本 - “测试是否添加文本”enter image description here,以便用户开始使用键盘输入新文本(例如“为什么” ),预先存在的文本 - “测试是否添加文本”被覆盖。

用户期望在选择预先存在的文本时输入,新输入的文本将被附加到预先存在的文本(“测试是否添加文本为什么”)。通过一些实验,我发现如果选择了预先存在的文本然后选择了大写(),那么新输入的文本将被附加而不会覆盖“测试是否添加文本”,但有一个警告 - 现有文本全部为大写。我不喜欢将现有文本更改为大写并希望避免副作用的前景。我尝试使用一个ViewController和一个UITextView构建一个简单的测试床,当我点击textview时,它就像我想要的那样工作,所以我更加困惑。

在我的应用程序屏幕的viewdidload中 - “A Project”(不是测试床),我将uitextview委托设置为“A Project”,“A Project”视图控制器包含UITextVIewDelegate。

似乎我对Xcode缺乏经验让我感到非常明显,并且吸引别人来启发我。

1 个答案:

答案 0 :(得分:0)

实施以下UITextViewDelegate方法

func textViewDidBeginEditing(_ textView: UITextView) {
    textView.selectedRange = NSRange(location: textView.text.characters.count-1, length: 0)
}