有没有办法在编辑时将 TextField 的光标移动到文本的末尾?- SwiftUI

Posted

技术标签:

【中文标题】有没有办法在编辑时将 TextField 的光标移动到文本的末尾?- SwiftUI【英文标题】:Is there a way to move the cursor of TextField to the end of the text when editing?- SwiftUI 【发布时间】:2021-09-20 13:03:40 【问题描述】:

我在 Swift UI 中创建了一个文本字段,我正在寻找一种方法,即使我点击了文本字段上的第一个字母,也可以让编辑时文本字段的光标位于文本末尾。

【问题讨论】:

它总是在最后!你能展示一下你到目前为止所做的事情吗? 是的,它应该始终位于末尾,或者至少阻止光标选择第一个文本。我不能做任何事情,因为在我的搜索中它总是 UITextField。我想到的是制作一个 UIView 并将文本从左侧移远,因此不会选择第一个文本 【参考方案1】:

我认为你的意思是这样的,设置.endOfDocument

let endPosition = textField.endOfDocument
textField.selectedTextRange = textField.textRange(from: endPosition, to: endPosition)

现在它将停留在位置的末尾。如果你搜索更高级的东西,我推荐你这个post and its answer。

【讨论】:

这似乎在 UIKit 解决方案中,希望 SwiftUI 中是否有一个,但看起来没有。谢谢你 不客气!第二个参考是 SwiftUI 解决方案。试试看。对此的积极回应。

以上是关于有没有办法在编辑时将 TextField 的光标移动到文本的末尾?- SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章

在UITextField中禁用放大镜

NSTextField 光标位置

编辑开始时 UITextView 光标移动

textview - 开始编辑时将光标放在文本末尾

编辑 Core Data 类实例字符串时,SwiftUI List 中的 TextField 出现光标定位错误?

仅在启用 darkTheme 时将边框颜色应用于 TextField