- 输入框中字符串的信息
// テキストファイールドのテキストの始まり
let startPosition: UITextPosition = textField.beginningOfDocument
// 末尾のテキストファールドテキスト
let endPosition: UITextPosition = textField.endOfDocument
// 現在選択されている範囲
let selectedRange: UITextRange? = textField.selectedTextRange
- 获取光标所在位置
// 現在のカーソル位置
let cursorPosition = textField.offset(from: textField.beginningOfDocument, to: selectedRange!.start)
-
光标位置的设定
1)设定selectedTextRange
的起始位置和结束位置一致,即设定了光标的位置
2)selectedTextRange
的起始位置和结束位置若不一致,则为选中字符串的部分值,可通过此来选中全体字符串
// カーソル位置を文字列の2番目の位置に取得します
let targetPostion = textField.position(from: textField.beginningOfDocument, offset: 2)!
DispatchQueue.main.asyncAfter(deadline: .now()) {
// カーソル位置を設定します
textField.selectedTextRange = textField.textRange(from: targetPostion, to: targetPostion)
}
必须加上DispatchQueue延迟,否则在复制粘贴的情况下,光标的位置设定会无效:DispatchQueue.main.async{ textField.selectedTextRange = ...}
PS:猜测可能是粘贴时系统按照粘贴的规则重设了光标的位置
参考链接:http://www.it1352.com/914445.html
羽裳醉月 发布了4 篇原创文章 · 获赞 0 · 访问量 74 私信 关注