我有一个文本字段,里面有一些预编译的文本。文本字段中的文本在视觉上是右对齐的。当我点击文本字段时,我希望光标位于文本的末尾,这样我就可以编辑文本了。默认情况下,光标被定位在文本的开始处,如果我点击一个单词,则定位在该单词的结尾处。
我试着设置 selectedTextRange
属性,但我无法实现这个结果。我注意到 becomeFirstResponder()
给出了正确的行为。
func textFieldDidBeginEditing(_ textField: UITextField) {
textField.selectedTextRange =
textField.textRange(from: textField.endOfDocument, to: textField.endOfDocument)
}
你需要随时从主线更新你的UI。
DispatchQueue.main.async {
textField.selectedTextRange = textField.textRange(from: textField.endOfDocument, to: textField.endOfDocument)
}