栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

以下内容适用于

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()
    给予重点的文本字段,使键盘出现。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393325.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号