【问题标题】:How does one prevent existing text in uitextview from being overwritten如何防止uitextview中的现有文本被覆盖
【发布时间】:2017-05-30 04:44:08
【问题描述】:

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

用户希望在选择预先存在的文本时键入,新输入的文本将附加到预先存在的文本(“测试是否添加文本为什么”)。通过一些实验,我发现如果选择了预先存在的文本,然后选择了大写(),那么新输入的文本会被附加,而不会用一个警告覆盖“测试是否添加文本” - 预先存在的文本都是大写的。我对将现有文本更改为大写的前景并不感兴趣,并且希望避免副作用。我尝试用一​​个 ViewController 和一个 UITextView 构建一个简单的测试平台,当我点击 textview 时,它会按照我想要的方式工作,所以我更加困惑。

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

似乎我对 Xcode 的缺乏经验使我对一些本应非常明显并呼吁某人启发我的东西视而不见。

【问题讨论】:

    标签: ios


    【解决方案1】:

    实现以下UITextViewDelegate方法

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

    【讨论】:

    • 谢谢你,我不知道我是怎么错过这个解决方案的,但我做到了,你真的帮了大忙。谢谢
    • 欢迎。快乐编码(:
    猜你喜欢
    • 2016-01-05
    • 2011-05-26
    • 1970-01-01
    • 2017-12-19
    • 2021-02-08
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多