以下内容适用于
UITextField和
UITextView。
有用的信息
文本字段文本的最开始:
let startPosition: UITextPosition = textField.beginningOfdocument
文本字段文本的末尾:
let endPosition: UITextPosition = textField.endOfdocument
当前选择的范围:
let selectedRange: UITextRange? = textField.selectedTextRange
获取光标位置
if let selectedRange = textField.selectedTextRange { let cursorPosition = textField.offset(from: textField.beginningOfdocument, to: selectedRange.start) print("(cursorPosition)")}设定光标位置
为了设置位置,所有这些方法实际上都是使用相同的开始值和结束值来设置范围。
从头开始
let newPosition = textField.beginningOfdocumenttextField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
到最后
let newPosition = textField.endOfdocumenttextField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
在当前光标位置左侧的一个位置
// only if there is a currently selected rangeif let selectedRange = textField.selectedTextRange { // and only if the new position is valid if let newPosition = textField.position(from: selectedRange.start, offset: -1) { // set the new position textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition) }}到任意位置
从头开始,向右移动5个字符。
let arbitraryValue: Int = 5if let newPosition = textField.position(from: textField.beginningOfdocument, offset: arbitraryValue) { textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)}有关
选择所有文字
textField.selectedTextRange = textField.textRange(from: textField.beginningOfdocument, to: textField.endOfdocument)
选择文字范围
// Range: 3 to 7let startPosition = textField.position(from: textField.beginningOfdocument, offset: 3)let endPosition = textField.position(from: textField.beginningOfdocument, offset: 7)if startPosition != nil && endPosition != nil { textField.selectedTextRange = textField.textRange(from: startPosition!, to: endPosition!)}在当前光标位置插入文本
textField.insertText("Hello")笔记
- 使用
textField.becomeFirstResponder()
给予重点的文本字段,使键盘出现。



