【发布时间】:2016-06-04 21:07:05
【问题描述】:
我正在使用以下代码更改 UITextView 的内容:
mainTextField.replaceRange((theRange), withText: newStr)
然后我想选择新文本。我正在尝试使用以下代码:
mainTextField.becomeFirstResponder()
let startPosition = mainTextField.positionFromPosition(mainTextField.beginningOfDocument, inDirection: UITextLayoutDirection.Right, offset: startingPoint)
let endPosition = mainTextField.positionFromPosition(mainTextField.beginningOfDocument, inDirection: UITextLayoutDirection.Right, offset: endingPoint)
if startPosition != nil && endPosition != nil {
mainTextField.selectedTextRange = mainTextField.textRangeFromPosition(startPosition!, toPosition: endPosition!)
}
问题是我不知道如何获取起点和终点值。是否可以从 replaceRange(range: UITextRange, withText: String) 语句中以某种方式获取它们?
编辑: 尝试澄清一下我的问题:
// mainTextField content = "Have a good day"
// mainTextField selected text = "good"
mainTextField.replaceRange((theRange), withText: "happy")
// here theRange refers the selected text "good" not the new one "happy"
如何选择新文本(“快乐”)?
【问题讨论】:
-
为什么您需要知道
startingPoint和endingPoint是什么?你已经知道theRange。你可以直接说mainTextField.selectedTextRange = theRange,不是吗? -
因为我的范围是旧的,所以我用这个代码更改了 UITextView 的文本:
mainTextField.replaceRange((theRange), withText: newStr)。
标签: xcode swift2 uitextview