在Swift中获取和设置UITextField和UITextView的光标位置

我一直在尝试UITextField以及如何使用它的光标位置。

但是由于我正在使用Swift,所以我想学习如何获取当前光标位置以及如何在Swift中进行设置。

下面的答案是我从Objective-C进行实验和翻译的结果。

回答:

以下内容适用于UITextFieldUITextView

有用的信息

文本字段文本的最开始:

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.beginningOfDocument

textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)

let newPosition = textField.endOfDocument

textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)

// only if there is a currently selected range

if 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 = 5

if 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 7

let 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

回到顶部