Nội dung sau đây áp dụng cho cả UITextField
và UITextView
.
Thông tin hữu ích
Phần đầu của văn bản trường văn bản:
let startPosition: UITextPosition = textField.beginningOfDocument
Phần cuối của văn bản trường văn bản:
let endPosition: UITextPosition = textField.endOfDocument
Phạm vi hiện được chọn:
let selectedRange: UITextRange? = textField.selectedTextRange
Nhận vị trí con trỏ
if let selectedRange = textField.selectedTextRange {
let cursorPosition = textField.offset(from: textField.beginningOfDocument, to: selectedRange.start)
print("\(cursorPosition)")
}
Đặt vị trí con trỏ
Để thiết lập vị trí, tất cả các phương pháp này thực sự đang thiết lập một phạm vi có cùng giá trị bắt đầu và giá trị kết thúc.
Cho tới khi bắt đầu
let newPosition = textField.beginningOfDocument
textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
Đến cuối cùng
let newPosition = textField.endOfDocument
textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
Đến một vị trí bên trái vị trí con trỏ hiện tại
// 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)
}
}
Đến một vị trí tùy ý
Bắt đầu từ đầu và di chuyển 5 ký tự sang bên phải.
let arbitraryValue: Int = 5
if let newPosition = textField.position(from: textField.beginningOfDocument, offset: arbitraryValue) {
textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
}
Có liên quan
Chọn tất cả văn bản
textField.selectedTextRange = textField.textRange(from: textField.beginningOfDocument, to: textField.endOfDocument)
Chọn một loạt văn bản
// 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!)
}
Chèn văn bản ở vị trí con trỏ hiện tại
textField.insertText("Hello")
Ghi chú
Xem thêm