在Swift中获取和设置UITextField和UITextView的光标位置
我一直在尝试UITextField
以及如何使用它的光标位置。
但是由于我正在使用Swift,所以我想学习如何获取当前光标位置以及如何在Swift中进行设置。
下面的答案是我从Objective-C进行实验和翻译的结果。
回答:
以下内容适用于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()
给予重点的文本字段,使键盘出现。
以上是 在Swift中获取和设置UITextField和UITextView的光标位置 的全部内容, 来源链接: utcz.com/qa/430523.html