2017-05-29 51 views
1

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

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

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

看来,我对Xcode的经验不足使我不知所措,应该非常明显,并呼吁某人请赐教。

回答

0

实现以下UITextViewDelegate方法

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

谢谢你,我不知道我怎么错过了这个解决办法,但我没有和你真正的帮助。谢谢 –

+0

欢迎。快乐编码(: –