如何以编程方式在当前光标位置的UITextView中输入文本

时间:2016-03-09 09:45:19

标签: ios swift uitextview uitextviewdelegate uitextinput

我想使用Swift在UITextView中的当前光标位置添加(一些预定义的)文本。因此,如果我有一个名为txtField的UITextField,其中包含一些文本,例如"这是一个美丽的山谷"然后点击" a"之间的区域和#34;美丽"这样光标现在位于" a"之间的空间中。和#34;美丽"然后在我的用户界面上单击一个按钮,输入一串文本,例如" very"将在光标位置键入,以便UITextView中的文本现在变为"这是一个非常美丽的山谷"。在此操作结束时(按钮点击事件之后),我将光标放在单词" very"之后。非常感谢您的帮助。我可以在论坛上看到一些类似主题的问题,但答案是在目标C中。我自杀就像使用Swift一样帮助。

3 个答案:

答案 0 :(得分:2)

试试这个

textView.replaceRange(textView.selectedTextRange!, withText: "your text")

答案 1 :(得分:1)

试试这个...在你的按钮IBAction内使用它(请不要使用强制可选的展开),否则如果textView没有选择或光标,应用程序可能会崩溃:

let txt = "whatever you want"
if let range = handleToYourTextView.selectedTextRange {
   // From your question I assume that you do not want to replace a selection, only insert some text where the cursor is.
   if range.start == range.end {
      handleToYourTextView.replaceRange(range, withText: txt)
   }
}

答案 2 :(得分:0)

更新:

Swift 5.2

    let txt = "whatever you want"
    if let range = myTextView.selectedTextRange {
       if range.start == range.end {
        myTextView.replace(range, withText: txt)
       }